创建测试用例
- 创建一个名为
UserControllerTest
的测试类,并引入MVC测试环境。
新建测试类
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserControllerTest {
@Autowired
private WebApplicationContext webApplicationContext;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();
}
}
- 编写测试用例
说明:向/user
发送GET请求,并且数据格式及编码为application/json;charset=utf-8
,期望返回结果集长度为3。
@Test
public void whenQuerySuccess() throws Exception {
mockMvc.perform(
MockMvcRequestBuilders.get("/user")
.contentType(MediaType.APPLICATION_JSON_UTF8)) //设置数据格式及编码为JSON;UTF-8
.andExpect(MockMvcResultMatchers.status().isOk()) //期望结果为成功
.andExpect(MockMvcResultMatchers.jsonPath("$.length()").value(3)); //期望返回数据的长度为3
}
GET测试用例
- 新建UserController
常用注解
- @RestController 标明此Controller提供RestAPI
- @RequestMapping及其变体(@GetMapping、@PostMapping、 @PutMapping、@DeleteMapping)映射http的url请求到java方法。
- @RequestParam 映射请求参数到java方法参数
- @PathVariable 映射URL片段到java方法的参数
- @JsonView 控制json输出内容
其中@RestController注解为@Controller和@ResponseBody的组合注解。
@RestController注解
@RequestParam注解用法
用于将请求参数映射到java方法的参数上。
@RequestParam
- required
用户标示该参数是否为必须,默认为true。当该值为true时请求参数中必须包含该注解对应的字段。 - name
用于将请求参数字段名与java方法参数名相匹配,默认该值与java方法参数名相同。上图中该字段值为nickName,则请求中字段名为nickName的值将会赋值给java方法中的username参数上。 - defaultValue
默认值。当required为false且请求参数中不包含该字段时,默认使用该值。
@PathVariable注解用法
用于将请求片段映射到java方法的参数上
@PathVariable
-
为参数添加正则表达式
使用正则表达式限制参数形式,如id的值只能是数字。在参数id写冒号+正则表达式
使用正则表达式
使用@JsonView控制JSON输出
-
使用接口来声明多个视图。
UserSimpleView
UserDetailView
2.在值对象的get方法上指定视图。
image.png
3.在Controller方法上指定视图。
image.png
网友评论