Spring Boot 2.X 快速集成單元測試解析
一、實(shí)現(xiàn)原理
使用MockMvc發(fā)起請(qǐng)求,然后執(zhí)行API中相應(yīng)的代碼,在執(zhí)行的過程中使mock模擬底層數(shù)據(jù)的返回,最后結(jié)果驗(yàn)證。
二、常用注解介紹
@SpringBootTest是SpringBoot的一個(gè)用于測試的注解,通過SpringApplication在測試中創(chuàng)建ApplicationContext。
@AutoConfigureMockMvc是用于自動(dòng)配置MockMvc。
@RunWith在JUnit中有很多個(gè)Runner,他們負(fù)責(zé)調(diào)用你的測試代碼,每一個(gè)Runner都有各自的特殊功能,你要根據(jù)需要選擇不同的Runner來運(yùn)行你的測試代碼。
@Before在每個(gè)測試方法前執(zhí)行,一般用來初始化方法。
@After在每個(gè)測試方法后執(zhí)行,在方法執(zhí)行完成后要做的事情。
三、主要代碼
引入測試jar包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency>
測試類中添加注解和測試代碼
package com.example.helloSpringBoot; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; @RunWith(SpringRunner.class) @SpringBootTest(classes = {HelloSpringBootApplication.class}) @AutoConfigureMockMvc //測試接口用 public class HelloControllerTest { private static final Logger log = LoggerFactory.getLogger(HelloControllerTest.class); @Before public void testBefore(){ log.info("測試前"); } @After public void testAfter(){ log.info("測試后"); } @Autowired private MockMvc mockMvc; /** * 測試 /mockTest * * */ @Test public void mockTest()throws Exception{ MvcResult mvcResult=mockMvc.perform(MockMvcRequestBuilders.get("/mockTest")). andExpect(MockMvcResultMatchers.status().isOk()).andReturn(); int status=mvcResult.getResponse().getStatus(); //打印出狀態(tài)碼,200就是成功 log.info("狀態(tài)碼="+status); Assert.assertEquals(200,status); } }
運(yùn)行mockTest
運(yùn)行成功后截圖如下:
上述三步操作完成后即可實(shí)現(xiàn)對(duì)API(Controller)測試,有問題歡迎留言溝通哦!
完整源碼地址:https://github.com/suisui2019/helloSpringBoot
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- SpringBoot 單元測試JUnit的使用詳解
- SpringBoot2種單元測試方法解析
- 如何設(shè)置Spring Boot測試時(shí)的日志級(jí)別
- 在Spring boot的項(xiàng)目中使用Junit進(jìn)行單體測試
- Spring Boot單元測試中使用mockito框架mock掉整個(gè)RedisTemplate的示例
- SpringBoot Controller Post接口單元測試示例
- SpringBoot DBUnit 單元測試(小結(jié))
- springboot使用單元測試實(shí)戰(zhàn)
- SpringBoot項(xiàng)目的測試類實(shí)例解析
相關(guān)文章
解決java調(diào)用dll報(bào)Unable to load library錯(cuò)誤的問題
這篇文章主要介紹了解決java調(diào)用dll報(bào)Unable to load library錯(cuò)誤的問題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼
這篇文章主要介紹了ActiveMQ結(jié)合Spring收發(fā)消息的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-10-10實(shí)例解析Java設(shè)計(jì)模式編程中的適配器模式使用
本篇文章主要通過實(shí)例對(duì)適配器模式進(jìn)行了詳解,需要的朋友可以參考下2017-04-04SpringBoot項(xiàng)目中只執(zhí)行一次的任務(wù)寫法實(shí)現(xiàn)
有時(shí)候我們需要進(jìn)行初始化工作,就說明只要進(jìn)行一次的工作,本文主要介紹了SpringBoot項(xiàng)目中只執(zhí)行一次的任務(wù)寫法實(shí)現(xiàn),感興趣的可以了解一下2023-12-12