SpringBoot單元測試解讀
更新時間:2025年02月18日 14:05:28 作者:Exill
SpringBoot提供了基于JUnit5的測試工具,方便進行測試,默認(rèn)導(dǎo)入相關(guān)依賴,創(chuàng)建測試類,使用斷言(Assertions類)進行斷言操作,支持參數(shù)化測試
SpringBoot提供一系列基于JUnit5的測試工具方便測試
1.導(dǎo)入
SpringBoot項目默認(rèn)自動導(dǎo)入該依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>默認(rèn)創(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)文章
Spring?Boot自定義?Starter并推送到遠端公服的詳細(xì)代碼
這篇文章主要介紹了Spring?Boot自定義?Starter并推送到遠端公服,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09
MyBatis 延遲加載深度解密:從使用方式到底層動態(tài)代理原理解析
本文詳細(xì)解析MyBatis延遲加載機制,涵蓋定義、配置方式、底層原理、執(zhí)行流程及常見坑點,助你掌握延遲加載優(yōu)化數(shù)據(jù)庫查詢與內(nèi)存使用技巧,應(yīng)對面試與實際項目挑戰(zhàn),感興趣的朋友一起看看吧2026-06-06
Spring事務(wù)管理@Transactional注解最佳實踐
本文詳細(xì)介紹了Spring框架的核心特性,包括IOC容器、AOP面向切面編程和事務(wù)管理,重點解析了Spring事務(wù)的傳播行為和隔離級別,以及SpringBoot的自動配置原理,本文給大家講解的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2026-02-02
Windows下Java調(diào)用可執(zhí)行文件代碼實例
這篇文章主要介紹了Windows下Java調(diào)用可執(zhí)行文件代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-12-12
關(guān)于Java中String創(chuàng)建的字符串對象內(nèi)存分配測試問題
這篇文章主要介紹了Java中String創(chuàng)建的字符串對象內(nèi)存分配測試,給大家詳細(xì)介紹了在創(chuàng)建String對象的兩種常用方法比較,通過示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-07-07
詳解Springboot @Cacheable 注解(指定緩存位置)
這篇文章主要介紹了詳解Springboot @Cacheable 注解(指定緩存位置),使用? @Cacheable ?注解就可以將運行結(jié)果緩存,以后查詢相同的數(shù)據(jù),直接從緩存中取,不需要調(diào)用方法,需要的朋友可以參考下2023-09-09

