參考:
service層
a. service/src目錄下新建test目錄,右鍵test目錄選擇"mark directory as",選擇"test source root"
b. 右鍵test建立具體的測試類或者包(包下建立類)tt.
c. 返回要測試的service實現類中檢視被引入(@autowired)的類
d. 這些類需要在tt中使用mock建立。 eg: private draftrepository draftrepository=mock(draftrepository.class)
f. 返回到要測試的service實現類中新增兩個建構函式。乙個無參,乙個把被@autowired引入的類新增為建構函式的引數。
g. 回到tt中,新增要測試的service物件為私有資料。 eg: private draftserviceimpl service=new draftserviceimpl(draftrepository)
h. 在tt中增加函式mockentity(),返回entity型別的資料(draft),並且在函式中呼叫entity的set函式設定一些屬性。
i. 使用@test標註測試函式testfind()。在函式中呼叫mockentity返回entitya。
j. import static org.mockito.mockito.when;
k. 在tt中繼續新增 when( draftrepositort.findbyid(id) ).thenreturn(entitya);
l. 在tt中呼叫service的按照id查詢函式,存起返回物件。 eg: entityvo vo=service.getentitybyid(id);
m. 在tt中新增assertthat( vo.getid(),is(12) ); //此處12是步驟f中對應設定的值
n. 右鍵測試類"run"
注:步驟k和步驟l的關係:步驟l中執行的函式service.geyentitybyid(id)的函式體包含了步驟k中repository的函式findbyid(id)。
因此,執行完步驟l之後會返回mock到的entitya。如果service的函式findentity是可用的,則會返回mock到的entitya。可以
通過斷言assert判定屬性值是否是在步驟h中設定的值來判斷findentity是否可用。
2.controller層
a. 同上建立test目錄,並建立測試類tt
b. 在類名tt前加上註解@runwith(springjunit4classrunner.class) //springjunit支援,由此引入spring-test框架支援!
c. 可以直接利用註解@autowired引入自己想要的類測試
注:
Spring Boot 單元測試
由於spring boot在啟動時通常會先行啟動一些內建的元件,比如tomcat。因此,spring boot的測試類一般需要加一些簡單的註解。org.springframework.boot spring boot starter test test runwith標記乙個執行期springrun...
springboot單元測試
springboot對單元測試的支援十分完善,需要引入的jar包 org.springframework.boot spring boot starter test test 使用方式 在測試類的類頭部需要新增 runwith springrunner.class 和 springboottest註...
Spring Boot 單元測試
在所有測試方法前執行一次,一般在其中寫上整體初始化的 beforeclass 在所有測試方法後執行一次,一般在其中寫上銷毀和釋放資源的 afterclass 在每個測試方法前執行,一般用來初始化方法 比如我們在測試別的方法時,類中與其他測試方法共享的值已經被改變,為了保證測試結果的有效性,我們會在 ...