本文参考 SpringBoot junit 测试 controller (MockMvc)、Spring Boot干货系列:(十二)Spring Boot使用单元测试
MockMvc是什么
MockMvc是Spring Test提供的功能,可是实现对Controller层(API)做测试,也就是不必启动工程就能测试Controller接口。
MockMvc实现了对Http请求的模拟,能够直接使用网络的形式,转换到Controller的调用,这样可以使得测试速度快、不依赖网络环境。而且提供了一套验证的工具,这样可以使得请求的验证统一而且很方便。
使用Spring Boot + MockMVC 测试Spring MVC请求的步骤:
1.准备测试环境
2.通过MockMvc执行请求,添加验证断言 ,添加结果处理器,得到MvcResult进行自定义断言/进行下一步的异步请求
3.卸载测试环境
有以下controller需要测试
package com.example.junittestdemo;
import java.io.IOException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.fasterxml.jackson.core.format.InputAccessor.Std;
@RestController
@RequestMapping("/student")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping("/findAll")
public ResponseEntity findAll() throws IOException {
List<Student> students = studentService.findAll();
Studen