本文將詳細介紹下使用Spring Boot 2.X 集成單元測試,對API(Controller)測試的過程。git
使用MockMvc發起請求,而後執行API中相應的代碼,在執行的過程當中使mock模擬底層數據的返回,最後結果驗證。github
@SpringBootTest是SpringBoot的一個用於測試的註解,經過SpringApplication在測試中建立ApplicationContext。web
@AutoConfigureMockMvc是用於自動配置MockMvc。spring
@RunWith在JUnit中有不少個Runner,他們負責調用你的測試代碼,每個Runner都有各自的特殊功能,你要根據須要選擇不一樣的Runner來運行你的測試代碼。跨域
@Before在每一個測試方法前執行,通常用來初始化方法。服務器
@After在每一個測試方法後執行,在方法執行完成後要作的事情。session
<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(); //打印出狀態碼,200就是成功 log.info("狀態碼="+status); Assert.assertEquals(200,status); } }
運行成功後截圖以下:併發
上述三步操做完成後便可實現對API(Controller)測試,有問題歡迎留言溝通哦!mvc
完整源碼地址:https://github.com/suisui2019/helloSpringBoot機器學習
1.Spring Boot入門-快速搭建web項目
2.Spring Boot 2.X 整合Redis
3.Spring Boot 2.X 如何優雅的解決跨域問題?
4.Spring Boot 2.X 如何添加攔截器?
5.Spring Boot 2.X 集成spring session實現session共享
6.Redis Cluster搭建高可用Redis服務器集羣
7.爲何單線程的Redis這麼快?
8.一篇文章搞定SpringMVC參數綁定
9.SpringMVC+Mybatis 如何配置多個數據源並切換?
限時領取免費Java相關資料,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo/Kafka、Hadoop、Hbase、Flink等高併發分佈式、大數據、機器學習等技術。
資料傳送門: https://mp.weixin.qq.com/s/u2b_NVNuMuAPE0w4lc45fw
關注下方公衆號便可免費領取: