SpringBoot單元測(cè)試解讀
SpringBoot提供一系列基于JUnit5的測(cè)試工具方便測(cè)試
1.導(dǎo)入
SpringBoot項(xiàng)目默認(rèn)自動(dòng)導(dǎo)入該依賴(lài)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
默認(rèn)創(chuàng)建的測(cè)試類(lèi)
@SpringBootTest //有這個(gè)注解才能使用SpringBoot容器bean //沒(méi)有此注解就是普通JUnit5 class SpringSecurityApplicationTests { @Test void contextLoads() { } }
2.使用
@SpringBootTest class SpringBootTestsApplicationTests { @Resource//注入IOC中的bean PersonProperty person; @Test//測(cè)試方法 void contextLoads() { System.out.println(person); } @BeforeEach//每個(gè)測(cè)試方法開(kāi)始前 void beforeEach(){ System.out.println("每個(gè)測(cè)試方法開(kāi)始前"); } @AfterEach//每個(gè)測(cè)試方法結(jié)束后 void afterEach(){ System.out.println("每個(gè)測(cè)試方法結(jié)束后"); } @BeforeAll//測(cè)試開(kāi)始 static void beforeAll(){ System.out.println("測(cè)試開(kāi)始"); } @AfterAll//測(cè)試結(jié)束 static void afterAll(){ System.out.println("測(cè)試結(jié)束"); } }
3.斷言使用(Assertions類(lèi))
@Test void checkResult(){ Integer age = person.getAge(); Assertions.assertEquals(18,age); }
4.參數(shù)化測(cè)試
@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é)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中g(shù)radle項(xiàng)目報(bào)錯(cuò)org.gradle?.api.plugins.MavenPlugin解決辦法
在使用Gradle時(shí)開(kāi)發(fā)者可能會(huì)遇到org.gradle?.api.plugins.MavenPlugin報(bào)錯(cuò)提醒,這篇文章主要給大家介紹了關(guān)于java中g(shù)radle項(xiàng)目報(bào)錯(cuò)org.gradle?.api.plugins.MavenPlugin的解決辦法,需要的朋友可以參考下2023-12-12springBoot動(dòng)態(tài)加載jar及如何將類(lèi)注冊(cè)到IOC
在SpringBoot項(xiàng)目中動(dòng)態(tài)加載jar文件并將其類(lèi)注冊(cè)到IOC容器是一種高級(jí)應(yīng)用方式,,這種方法為SpringBoot項(xiàng)目提供了更靈活的擴(kuò)展能力,使得項(xiàng)目可以在不修改原有代碼的基礎(chǔ)上增加新的功能模塊,感興趣的朋友一起看看吧2024-11-11詳解Spring 基于 Aspect 注解的增強(qiáng)實(shí)現(xiàn)
本篇文章主要介紹了詳解Spring 基于 Aspect 注解的增強(qiáng)實(shí)現(xiàn),非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-04-04java底層JDK?Logging日志模塊處理細(xì)節(jié)深入分析
這篇文章主要為大家介紹了java底層JDK?Logging日志模塊處理細(xì)節(jié)深入分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Java IO創(chuàng)建目錄和文件實(shí)例代碼
本篇文章給大家分享了Java IO創(chuàng)建目錄和文件的實(shí)例代碼,過(guò)程很簡(jiǎn)單,大家可以測(cè)試參考下。2018-02-02springboot實(shí)現(xiàn)發(fā)送郵件(QQ郵箱為例)
這篇文章主要為大家詳細(xì)介紹了springboot實(shí)現(xiàn)發(fā)送郵件,qq郵箱代碼實(shí)現(xiàn)郵件發(fā)送,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-06-06深入理解spring boot異步調(diào)用方式@Async
Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持。通過(guò)在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用。下面這篇文章主要給大家介紹了關(guān)于spring boot異步調(diào)用方式@Async的相關(guān)資料,需要的朋友可以參考下。2017-07-07