SpringBoot單元測試解讀
更新時間:2025年02月18日 14:05:28 作者:Exill
SpringBoot提供了基于JUnit5的測試工具,方便進行測試,默認導(dǎo)入相關(guān)依賴,創(chuàng)建測試類,使用斷言(Assertions類)進行斷言操作,支持參數(shù)化測試
SpringBoot提供一系列基于JUnit5的測試工具方便測試
1.導(dǎo)入
SpringBoot項目默認自動導(dǎo)入該依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>默認創(chuàng)建的測試類

@SpringBootTest
//有這個注解才能使用SpringBoot容器bean
//沒有此注解就是普通JUnit5
class SpringSecurityApplicationTests {
@Test
void contextLoads() {
}
}2.使用
@SpringBootTest
class SpringBootTestsApplicationTests {
@Resource//注入IOC中的bean
PersonProperty person;
@Test//測試方法
void contextLoads() {
System.out.println(person);
}
@BeforeEach//每個測試方法開始前
void beforeEach(){
System.out.println("每個測試方法開始前");
}
@AfterEach//每個測試方法結(jié)束后
void afterEach(){
System.out.println("每個測試方法結(jié)束后");
}
@BeforeAll//測試開始
static void beforeAll(){
System.out.println("測試開始");
}
@AfterAll//測試結(jié)束
static void afterAll(){
System.out.println("測試結(jié)束");
}
}
3.斷言使用(Assertions類)
@Test
void checkResult(){
Integer age = person.getAge();
Assertions.assertEquals(18,age);
}
4.參數(shù)化測試
@ParameterizedTest
@ValueSource(strings = {"ab","cd","ef"})
void test1(String param){
System.out.println(param);
}
@ParameterizedTest
@MethodSource("paramForTest2")
void test2(Map<String,String> param){
System.out.println(param);
}
static Stream<Map<String,String>> paramForTest2(){
Map<String,String> map1 = Map.of("a","a1","b","b1");
Map<String,String> map2 = Map.of("a","a2","b","b2");
return Stream.of(map1,map2);
}
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中g(shù)radle項目報錯org.gradle?.api.plugins.MavenPlugin解決辦法
在使用Gradle時開發(fā)者可能會遇到org.gradle?.api.plugins.MavenPlugin報錯提醒,這篇文章主要給大家介紹了關(guān)于java中g(shù)radle項目報錯org.gradle?.api.plugins.MavenPlugin的解決辦法,需要的朋友可以參考下2023-12-12
springBoot動態(tài)加載jar及如何將類注冊到IOC
在SpringBoot項目中動態(tài)加載jar文件并將其類注冊到IOC容器是一種高級應(yīng)用方式,,這種方法為SpringBoot項目提供了更靈活的擴展能力,使得項目可以在不修改原有代碼的基礎(chǔ)上增加新的功能模塊,感興趣的朋友一起看看吧2024-11-11
詳解Spring 基于 Aspect 注解的增強實現(xiàn)
本篇文章主要介紹了詳解Spring 基于 Aspect 注解的增強實現(xiàn),非常具有實用價值,需要的朋友可以參考下2017-04-04
java底層JDK?Logging日志模塊處理細節(jié)深入分析
這篇文章主要為大家介紹了java底層JDK?Logging日志模塊處理細節(jié)深入分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-03-03
springboot實現(xiàn)發(fā)送郵件(QQ郵箱為例)
這篇文章主要為大家詳細介紹了springboot實現(xiàn)發(fā)送郵件,qq郵箱代碼實現(xiàn)郵件發(fā)送,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
深入理解spring boot異步調(diào)用方式@Async
Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持。通過在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用。下面這篇文章主要給大家介紹了關(guān)于spring boot異步調(diào)用方式@Async的相關(guān)資料,需要的朋友可以參考下。2017-07-07

