單元測試不是頭一次聽說了,但只是聽說從來沒有用過。一個模組要怎麼測試呢,是不是得專門為一單元寫一個測試程序,然後將測試單元程式碼拿過來測試? 我是這麼想的。學到spring框架這才知道單元測試原來是這麼回事兒。
下面以上一篇文章中set注入的第一個實例為測試對象。進行單元測試。
1,拷貝jar包
junit-3.8.2.jar(4.x主要增加註記應用)
2,寫業務類
public class User{ privateString username; publicString getUsername() { returnusername; } publicvoid setUsername(String username) { this.username= username; } //添加方法 publicString login() throws Exception{ if("admin".equals(username){ return"success"; }else{ return"error"; } } }
3,定義測試類
測試類最好單獨建立項目,或單獨定義資料夾存儲,需要繼承junit.framework.TestCase
4,增加測試方法
測試方法必須是public,不應該有回傳值,方法名稱必須以test開頭,無參數
測試方法是有執行先後順序,依照方法的定義先後順序
多個測試方法對同一個業務方法進行測試,一般每個邏輯分支結構都有測試到。
public class TestUserextends TestCase{ publicvoid testUser_Success() throws Exception{ //准备数据 Useraction = new User(); action.setUsername("admin"); //调用被测试方法 Stringresult = action.login(); //判断测试是否通过 assertEquals("success",result); } }
運行程序,如果測試成功會出現如下圖所示的結果
如果運行失敗,有方法沒有通過測試,那麼就會顯示出在哪個方法出錯了。上圖綠色的條會變成紅色的。
5,測試類別的生命週期方法
//用来进行初始化操作 @Override protectedvoid setUp() throws Exception { System.out.println("setUp..."); } //用来做销毁操作 @Override protectedvoid tearDown() throws Exception { System.out.println("tearDown..."); }
setUp方法會在每一個測試方法前執行一次。 tearDown方法會在每一個測試方法後執行一次
以上就是spring框架學習(三)junit單元測試的內容,更多相關內容請關注PHP中文網(www.php.cn)!