單元測試是要遵守可重複執行,故測試用例不應該依賴外部環境以及下游服務,避免不必要的問題;
mock工具就是為了滿足這一需求的,它可以幫我們mock(模仿)出外部依賴物件,這樣我們的測試用例不依賴於下游服務的狀態,同時可以自主控制方法的返回值,或者執行特定行為甚至返回異常。
首先,powermock就是mock的一種實現工具庫框架,類似的還有easymock、mockito,但powermock更為強大,除了可以滿足其他工具的mock功能,其還可以mock靜態、final、私有方法等,是對easymock、mockito的擴充套件。
@runwith(powermockrunner.class)
@preparefortest()
//@preparefortest註解和@runwith註解是結合使用的,單獨使用@preparefortest不起作用。
//這兩個註解就是表示你要mock一些類的靜態、private、final方法,需要mock的類就在@preparefortest中宣告,@runwith就是申明要用powermock環境啟動
//建立乙個例項,即要測試的類,不是mock
@injectmocks
//需要mock的服務
@mock
private otherservice taskmanageservice;
@test
public void createtasktest() throws customexception
@test
public void createtasktest() throws customexception
Java Spring搭配Junit測試配置
使用junit測試時,如果專案用spring框架的話,配置檔案載入什麼的很麻煩,而且和資料庫的連線經常出錯,可以使用spring的註解配置,簡化 讓測試結果更有效。ide idea jdk 1.8 junit 4.9 spring 4.26 utf 8file.encoding 4.2.6.rele...
Spring事務之六(JUnit單測事務回滾)
測試 case 1 插入成功後會回滾 輸出 insert 1 rows rolled back transaction after test execution for test context.test transactional public void testtx throws excepti...
使用Junit和mockito寫單測的一些注意點
使用mockito和junit進行單測的一些要點 1,總的來說寫乙個單測需要提前進行三件事 a,看好你要測的函式的入參,構建出乙個入參 b,詳細看好你的函式中依賴了哪些寫好的函式,這些函式需要進行 mock宣告,將他們mock掉,使得你的單測只測試你寫的邏輯 c,判斷你要得到什麼樣的結果,也就是你的...