SpringBoot-單元測試
在SpringBoot中提供了單元測試的組件,它類似於Spring中的單元測試,無需加載配置文件,即可從容器中獲取對象的實例。
首先在pom文件中導入以下依賴:
<!--springboot程序測試依賴,如果是自動創建項目默認添加-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
然后在test文件夾中創建測試類,在測試類上加上如下注解:
在該類中就可以使用@Autowired和@Test進行測試
packagecn.rayfoo.demo;
importcn.rayfoo.Application;
importcn.rayfoo.config.JDBCProperties;
importorg.junit.jupiter.api.Test;
importorg.junit.runner.RunWith;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.boot.test.context.SpringBootTest;
importorg.springframework.test.context.junit4.SpringRunner;
當然,我們還可以使用@After@Before注解
Junit基本注解介紹
@BeforeClass 在所有測試方法前執行一次,一般在其中寫上整體初始化的代碼
@AfterClass 在所有測試方法后執行一次,一般在其中寫上銷毀和釋放資源的代碼
@Before 在每個測試方法前執行,一般用來初始化方法(比如我們在測試別的方法時,類中與其他測試方法共享的值已經被改變,為了保證測試結果的有效性,我們會在@Before注解的方法中重置數據)
@After 在每個測試方法后執行,在方法執行完成后要做的事情
@Test(timeout = 1000) 測試方法執行超過1000毫秒后算超時,測試將失敗
@Test(expected = Exception.class) 測試方法期望得到的異常類,如果方法執行沒有拋出指定的異常,則測試失敗
@Ignore(“not ready yet”) 執行測試時將忽略掉此方法,如果用於修飾類,則忽略整個類
@Test 編寫一般測試用例
@RunWith 在JUnit中有很多個Runner,他們負責調用你的測試代碼,每一個Runner都有各自的特殊功能,你要根據需要選擇不同的Runner來運行你的測試代碼。
如果我們只是簡單的做普通Java測試,不涉及Spring Web項目,你可以省略@RunWith注解,這樣系統會自動使用默認Runner來運行你的代碼。