1、引入测试依赖包
2、编写测试类(GET请求)
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup(){
//让每个测试用例启动之前都构建这样一个启动项
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public void whenQueryUserAll() throws Exception{
//MockMvcRequestBuilders构建GET请求
mockMvc.perform(MockMvcRequestBuilders.get("/user")
//请求参数
.param("token", "asfsafqfEQFFA$@%%4")
//请求编码和数据格式为json和UTF8
.contentType(MediaType.APPLICATION_JSON_UTF8))
//期望的返回值 或者返回状态码
.andExpect(MockMvcResultMatchers.status().isOk());
//期望获取返回值的具体 什么参数 或者具体某个字段的值 具体在GitHub 搜jsonPath 什么参数的什么value
//.andExpect(MockMvcResultMatchers.jsonPath("$.User.userName").value("zyy"));
}
}
https://github.com/json-path/JsonPath
3、编写测试类(POST请求)
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
@Autowired
private WebApplicationContext wac;
private MockMvc mockMvc;
@Before
public void setup(){
//让每个测试用例启动之前都构建这样一个启动项
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
@Test
public void greatUserWhithDetailView() throws Exception{
String content = "{\"userName\":\"二十岁以后\",\"passWord\":null,\"id\":88}";
//MockMvcRequestBuilders构建GET请求
String result = mockMvc.perform(MockMvcRequestBuilders.post("/user")
//请求编码和数据格式为json和UTF8
.contentType(MediaType.APPLICATION_JSON_UTF8)
//请求的参数,为json的格式
.content(content))
//期望的返回值 或者返回状态码
.andExpect(MockMvcResultMatchers.status().is5xxServerError())
//返回请求的字符串信息
.andReturn().getResponse().getContentAsString();
System.out.println(result);
}
}