24分鐘學會用JMock進行單元測試[2] 單元測試代碼
在工程中導入jmock-1.0.1.jar ,jmock-cglib-1.0.1.jar ,cglib-full-2.0.jar 三個jar包,然后在JUnit中執行BusinessTest.java,會顯示綠棒,這樣,在沒有數據庫的情況下,單元測試成功。
使用JMock模擬類的條件:
1、要有無參數的構造器;
2、構造器是public;
這樣對于private的構造器或單例模式的類應該是無法模擬了。這樣就要求我們養成針對接口編程的習慣,對接口用JMock進行模擬將不受這些限制。只需要將
import org.jmock.cglib.MockObjectTestCase;
import org.jmock.cglib.Mock;
改為
import org.jmock.MockObjectTestCase;
import org.jmock.Mock;
即可。
對于Mock類,有很多API可供使用,比如:
isA(Class clz) 表示為某個類
isVoid() 將will()換成isVoid()表示無返回值
詳細API可以參考一下DOC,還會找到很多有用的東西。軟件測試