• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    基于mock對象和JUnit框架簡化Spring

    發布: 2009-12-24 11:42 | 作者: 不詳 | 來源: 領測國際測試網采編 | 查看: 275次 | 進入軟件測試論壇討論

    領測軟件測試網

      viewInvoiceAsPDFController.handleRequest( request, response );

      byte[] responsePDFValues = response.getContentAsByteArray();

      byte[] expectedPDFValues = loadBytesFromTestFile();

      assertTrue( "Did not generate expected PDF content.", Arrays.equals(responsePDFValues,expectedPDFValues ));

      }

      注意,在此你的控制器ViewInvoiceAsPDFController不是返回ModelAndView對象,而是產生了二進制輸出—你可以使用一個二進制的數組形式來捕獲此控制器并對此進行正確性評價。

      五、事務性單元測試

      到目前為止,你已看到了相對簡單的JUnit測試—它僅發生在用mock對象支持的一個控制器的上下文中。但是,如果測試一個Web組件只有在一個事務性上下文(例如,通過依賴性注入與Hibernate集成到一起)中才有意義的情況又會怎么樣呢?不必擔心,Spring MVC為JUnit框架提供了一個體面的擴展集合—它能準確地提供依賴性注入和事務安全測試(也就是,任何更新在測試完成后都將被回滾)。

      測試步驟:

      讓我們看一種假想的情形—你要實現一個組件(例如MyTransactionalController)測試,該組件運行在一個事務性的上下文中(也即,其方法調用的結果發生在一個事務內并且它應該在測試運行完后被回滾):

      1.創建一個定制的JUnit類(MyTransactionalControllerTest),它擴展了Spring的JUnit擴展類 AbstractTransactionalSpringContextTests:

      import org.springframework.test.AbstractDependencyInjectionSpringContextTests;

      public class MyTransactualControllerTest extends AbstractTransactionalSpringContextTests {

      public class.

      2.為了實現從Spring內置的單元測試中發現Spring管理的bean,你需要重載getConfigLocations()方法并且返回上下文文件位置的String數組,請看如下:

      protected abstract String[] getConfigLocations(){ return new String[] {"classpath:/test/spring-context.xml"};}

      3.擁有該類的一個測試屬性及其相關聯的getter和setter。由于AbstractTransactionalSpringContextTests利用了auto-wiring(這是Spring框架的一個特性—能夠根據類屬性的名字識別類依賴性并且用Spring bean填入相匹配的名字或ID)技術而且在測試時它將自動地解決類的依賴性問題,所以在Spring上下文文件中該類屬性具有與Spring管理的bean一樣的名字并且在測試時每個屬性都有一個適當命名的setter:

      public MyTransactualController myTransactualController;

      /** * @返回myTransactualController。 */

      public MyTransactualController getMyTransactualController()

      {

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    54/5<12345>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>