Springboot 使用具體化類和配置來縮短單元測試時間
具體化類和配置來縮短單元測試時間
我們在寫完業務代碼之後,都需要編寫測試用例來驗證代碼邏輯是否正確,這樣不僅方便自己後期檢查,也方便後面接手的人快速測試我們的代碼。
編寫測試用例時,我們可以通過如下快捷鍵:ctrl+shift+T,然後會出現如下提示:
點擊,Create New Test….
通常,隻是幫助我們生成一個包下對應的類,以及方法名,然後我們在類上面,簡單粗暴的添加:
@RunWith(SpringRunner.class) @SpringBootTest public class SquirrelConfigTest{ @Test }
註意:上述註解會將整個項目的類以及配置文件都加載進來,這樣每執行一次測試用例,如果項目比較龐大,耗時就會很長。因此,我們可以指定相應要加載的類和配置文件,編寫如下:
@RunWith(SpringRunner.class) @EnableAutoConfiguration @SpringBootTest(classes = {Test.class, Test2.class}) public class SquirrelConfigTest { }
很明顯上述耗時會短很多。
SpringBoot 簡單的單元測試
一、為什麼寫單元測試
單元測試是開發者編寫的一小段代碼,用於檢驗目標代碼的一個很小的、很明確的功能是否正確。通常而言,一個單元測試用於判斷某個特定條件或特定場景下某個特定函數的行為。例如,用戶可能把一個很大的值放入一個有序List中,然後確認該值出現在List 的尾部。或者,用戶可能會從字符串中刪除匹配某種模式的字符,然後確認字符串確實不再包含這些字符瞭。
單元測試是由程序員自己來完成,最終受益的也是程序員自己。可以這麼說,程序員有責任編寫功能代碼,同時也就有責任為自己的代碼編寫單元測試。執行單元測試,就是為瞭證明這段代碼的行為和我們期望的一致。
在一般情況下,一個功能模塊往往會調用其他功能模塊完成某項功能,如業務層的業務類可能會調用多個DAO完成某項業務。對某個功能模塊進行單元測試時,我們希望屏蔽對外在功能模塊的依賴,以便將焦點放在目標功能模塊的測試上。這時模擬對象將是最有力的工具,它根據外在模塊的接口模擬特定操作行為,這樣單元測試就可以在假設關聯模塊正確工作的情況下驗證本模塊邏輯的正確性瞭。
二、簡單的spring boot單元測試的實現
1、首先寫一個簡單的接口,如下圖所示:
三、編寫單元測試
1、打開測試文件夾:
2、具體代碼實現
配置的註解:
3、正確的情況下,如圖所示:
錯誤的情況,如圖所示:
因為和預期期望的返回數據不一致,所以報錯:
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- SpringBoot項目中@Test不出現可點擊運行的按鈕問題
- Springboot使用test無法啟動問題的解決
- 解決SpringBoot 測試類無法自動註入@Autowired的問題
- 解決Spring boot 整合Junit遇到的坑
- 單元測試 @mock與@SpringBootTest的使用