第四章 SpringBoot2.0单元测试进阶实战和自定义异常处理
03-2 SpringBoot测试进阶高级篇之MockMvc讲解
简介:讲解MockMvc类的使用和模拟Http请求实战
1、增加类注解 @AutoConfigureMockMvc
@SpringBootTest(classes={XdclassApplication.class})
2、相关API
perform:执行一个RequestBuilder请求
andExpect:添加ResultMatcher->MockMvcResultMatchers验证规则
andReturn:最后返回相应的MvcResult->Response
在spring boot项目中新建一个JuitController类。提供一个接口以便之后做Mock测试。
1.JunitController类
package com.lcz.spring_demo5.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : codingchao
* @date : 2021-11-18 22:26
* @Description:
**/
@RestController
public class JUnitController {
@GetMapping(value = "/test_junit")
public String testJUnit(){
return "JUnit Test";
}
}
2.MockMvcTestDemo.java
package com.lcz.spring_demo5;
import org.junit.Test;
import org.junit.runner.RunWith;
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;
/**
* @author : codingchao
* @date : 2021-11-18 22:57
* @Description:
**/
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {SpringDemo5Application.class}) //底层用junit
@AutoConfigureMockMvc
public class MockMvcTestDemo {
@Autowired
private MockMvc mockMvc;
@Test
public void apiTest() throws Exception {
MvcResult mvcResult = mockMvc.perform( MockMvcRequestBuilders.get("/test_junit") ).
andExpect( MockMvcResultMatchers.status().isOk() ).andReturn();
int status = mvcResult.getResponse().getStatus();
System.out.println(status);
}
}
测试结果

还有后续工作,大家点赞评论收藏关注走起来!!!学起来!!!
本文介绍如何在SpringBoot 2.0项目中使用MockMvc进行单元测试,包括配置@AutoConfigureMockMvc注解、执行HTTP请求及验证响应结果。通过实战案例演示了如何测试一个简单的RESTful API。

被折叠的 条评论
为什么被折叠?



