單元測試實踐小結[4] 軟件測試
編寫Stubs和Mock object
1. 接口的mock比較容易,測試時,編寫stubs和mock object來輔助測試,是非常重要的技術. Mock object分動態mock和靜態mock.采用EasyMock可以很好的實現動態mock。
2. 具體類的mock,也很簡單,通常利用子類繼承的方式實現,利用cglib框架可以很好大達到測試目的。
3. 靜態方法的mock。靜態方法由于是直接面對服務對象,比較麻煩。不過,并非不可以測試,實際我們可以利用classpath的特點來實現。
方法很簡單,mock類與建立一個將被mock的類的package,class name以及方法簽名完全一樣,但方法實現卻是mock過的。在運行測試用例時,把mock類打成jar(不一定要這么做), 在配置classpath時確保,該jar的位置在當前class之前,就可以實現替換。代碼如下:StaticMock.rar
使用成熟單元測試框架
除了最基本的Junit外,Opensource提供了很多非常有價值的單元測試框架,熟練使用這些工具,可以提高測試的效率。包括對準備大量的數據,以及j2ee的框架代碼。
現有代碼的可選自動化測試工具:
1. POJO:JUnit, JMock或者EasyMock
2. Data Object:DDTUnit。準備大量數據。
3. Dao:DBUnit。初始化數據庫。批量產生數據庫數據。
4. EJB: MockEJB或者MockRunner
5. Servlet:Cactus
6. Struts:StrutsUnitTest
文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/