1 package cn.coreqi.security.controller;
2
3 import org.junit.Before;
4 import org.junit.Test;
5 import org.junit.runner.RunWith;
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
8 import org.springframework.boot.test.context.SpringBootTest;
9 import org.springframework.http.MediaType;
10 import org.springframework.test.context.junit4.SpringRunner;
11 import org.springframework.test.web.servlet.MockMvc;
12 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
13 import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
14 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
15 import org.springframework.web.context.WebApplicationContext;
16
17 @RunWith(SpringRunner.class) //如何运行测试用例,使用SpringRunner执行测试用例。
18 @SpringBootTest //指定当前类为测试用例类
19 @AutoConfigureMockMvc
20 public class UserControllerTests {
21 @Autowired
22 private WebApplicationContext wac;
23
24 @Autowired
25 private MockMvc mockMvc;
26
27 @Before //@Before标注的方法会在每一个测试用例执行之前执行
28 public void setup(){
29 mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
30 }
31
32 @Test
33 public void whenQuerySuccess() throws Exception {
34 //MockMvcRequestBuilders的get方法会模拟发出一个GET请求
35 mockMvc.perform(MockMvcRequestBuilders.get("/users")
36 .param("usernmae","fanqi")
37 .param("size","15")
38 .param("page","3")
39 .param("sort","id,desc")
40 .contentType(MediaType.APPLICATION_JSON_UTF8))
41 .andExpect(MockMvcResultMatchers.status().isOk()) //期望服务器端返回的信息
42 .andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3))
43 .andReturn().getResponse().getContentAsString();
44 }
45 }