Spring Boot 编写Mock测试

引入Maven依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

测试Controller的代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class TestControllerTest {

    @Autowired
    private WebApplicationContext webApplicationContext;

    private MockMvc mockMvc;

    @Before
    public void setupMockMvc(){
        mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
    }

     @Test
    public void testTes() throws Exception{
        mockMvc.perform(MockMvcRequestBuilders.get("/api/test") // 发出请求
                .contentType(MediaType.APPLICATION_JSON_UTF8) //期望的内容类型
                .accept(MediaType.APPLICATION_JSON_UTF8)) //期望接收的内容类型
                .andExpect(MockMvcResultMatchers.status().isOk()) //期望结果是200
                .andDo(MockMvcResultHandlers.print()); // 期望把结果打印出来
     }
}

Mock测试打印输出的日志:

MockHttpServletRequest:
      HTTP Method = GET
      Request URI = /api/test
       Parameters = {}
          Headers = [Content-Type:"application/json;charset=UTF-8", Accept:"application/json;charset=UTF-8"]
             Body = null
    Session Attrs = {}

Handler:
             Type = com.fubin.controller.TestController
           Method = public java.lang.Object com.fubin.controller.TestController.test()

Async:
    Async started = false
     Async result = null

Resolved Exception:
             Type = null

ModelAndView:
        View name = null
             View = null
            Model = null

FlashMap:
       Attributes = null

MockHttpServletResponse:
           Status = 200
    Error message = null
          Headers = [Content-Type:"application/json;charset=UTF-8"]
     Content type = application/json;charset=UTF-8
             Body = {"id":2,"name":"fubin","age":28,"url":"https://fubin.org.cn"}
    Forwarded URL = null
   Redirected URL = null
          Cookies = []
原文地址:https://www.cnblogs.com/fubinhnust/p/12013999.html