SpringBoot @Test單元測試方式
一、普通測試
1.初步了解:springboot一般使用maven搭建工程,在maven工程中存在test包(雖然測試用例是可以存在于src下,但是規(guī)范統(tǒng)一是放在test中)
我們的在test包可以同步src下的包結(jié)構(gòu),針對相應(yīng)的java類寫test用例,在做單元測試這是非常重要的
2.一個(gè)簡單的測試用例,就像main方法一樣
public class UtilTest {
@Test
public void currencyTest() throws Exception{
String uuid = MD5Util.getMd5("測試用例");
System.out.println(uuid);
}
}注意到這里我們使用了這個(gè)注解@Test,由JUnit提供,它回去掃描帶有該注解的方法去調(diào)用,從而達(dá)到相對應(yīng)的效果
二、SpringBoot調(diào)用測試
1.我們調(diào)用springboot中的controller、service、mapper層時(shí),需要注入它們,需要springboot的相關(guān)環(huán)境
2.測試用例:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SpringBootCatApplication.class)
public class CatTest {
@Autowired
private ElasticDao elasticDao;
@Autowired
private testService testService;
@Test
public void testEs() throws Exception{
ResponseEntity responseEntity = elasticDao.saveAndUpdateBulkList(EsIndexEnum.TEST.type,"test","test");
System.out.println(responseEntity);
}
@Test
public void testTestService() throws Exception{
ResultEntity ResultEntity = testService.test("1");
System.out.println(ResultEntity);
}
}這里我們添加了兩個(gè)注解@RunWith和@SpringBootTest,可以進(jìn)入SpringBootTest中查看到這一段代碼確認(rèn)web環(huán)境,一般我們將classes指向啟動(dòng)類
SpringBootTest.WebEnvironment webEnvironment() default SpringBootTest.WebEnvironment.MOCK;
三、Junit4單元測試
這個(gè)依賴于idea的插件Junit
- 1、選擇要測試的java類
- 2、按住alt+insert鍵
- 3、選擇Junit Test
- 4、選擇Junit4
- 5、生成在test對應(yīng)包下
測試內(nèi)容可以選擇上述直接調(diào)用方法體,也可以是用Junit提供的Mock對象
/**
* 模擬mvc測試對象
*/
private MockMvc mockMvc;
/**
* web項(xiàng)目上下文
*/
@Autowired
private WebApplicationContext webApplicationContext;
/**
* 所有測試方法執(zhí)行之前執(zhí)行該方法
*/
@Before
public void before() {
//獲取mock對象
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}比較測試結(jié)果是否符合預(yù)期可以使用
Assert.assertEquals("預(yù)期結(jié)果", "實(shí)際結(jié)果");
Assert.assertTrue();
Assert.assertNotNull();
Assert.assertNotEquals();
Assert.assertNull();我們可以使用Jacoco,來獲得我們單元測試的分支覆蓋率
這里我就不做過多的描述了,有興趣可以去了解一下
四、pom.xml依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-test</artifactId> <version>2.1.3.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot+vue項(xiàng)目從第一行代碼到上線部署全流程
本文詳細(xì)介紹了如何從零開始搭建一個(gè)基于Spring Boot和Vue.js的前后端分離項(xiàng)目,并涵蓋項(xiàng)目需求分析、技術(shù)選型、項(xiàng)目結(jié)構(gòu)設(shè)計(jì)、前后端交互、部署上線等全過程,感興趣的朋友跟隨小編一起看看吧2024-11-11
springboot中動(dòng)態(tài)權(quán)限實(shí)時(shí)管理的實(shí)現(xiàn)詳解
這篇文章主要為大家詳細(xì)介紹了如何簡單實(shí)現(xiàn)一個(gè)在springboot中動(dòng)態(tài)權(quán)限的實(shí)時(shí)管理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2024-10-10
java數(shù)據(jù)結(jié)構(gòu)之希爾排序
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)之希爾排序的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
如何用Java實(shí)現(xiàn).env文件讀取敏感數(shù)據(jù)
這篇文章主要介紹了如何用Java實(shí)現(xiàn).env文件讀取敏感數(shù)據(jù),并提供了一個(gè)自動(dòng)配置類EnvAutoConfiguration,common-env-starter-demo模塊展示了如何配置和啟動(dòng)一個(gè)簡單的Spring Boot應(yīng)用程序,需要的朋友可以參考下2025-02-02
判斷以逗號分隔的字符串中是否包含某個(gè)數(shù)的實(shí)例
下面小編就為大家?guī)硪黄袛嘁远禾柗指舻淖址惺欠癜硞€(gè)數(shù)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-11-11
java中l(wèi)ong數(shù)據(jù)類型轉(zhuǎn)換為int類型
這篇文章主要講解Java中基本數(shù)據(jù)類型,java long 類型與其java int類型的轉(zhuǎn)換的幾種方法,希望能給大家做一個(gè)參考2016-07-07

