今天为大家介绍如何编写针对Restful API的测试用例,对于Restful API的测试我们可能想到的是通过浏览器请求去实现,但是Restful更多的POST、PUT、DELETE是没办法通过浏览器测试的,因此我们需要测试框架帮我们去完成 。
需要这些哦
IntelliJ IDEA
方式/
1起首需要引入spring-boot-starter-test,会帮我们把测试框架引入进来 。
<depency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</depency>
文章插图
2起首我们建立一个测试类UserControllerTest,然后加上@RunWith(SpringRunner.class和@SpringBootTest的注解 。 接下来我们经由过程@Autowired
private WebApplicationContext wac来伪造web情况 。
文章插图
3然后利用@Before注解来初始化mockMvc,@Before注解会在每个测试用例挪用之前执行 。
@Before
public void setup() {
mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
文章插图
4接下来我们写一个查询请求的测试方式,在该方式上添加@Test注解,利用MockMvcRequestBuilders.get()去模拟一个Get请求,MediaType.APPLICATION_JSON_UTF8指定媒体类型,MockMvcResultMatchers.status().isOk()暗示成果,如下所示 。
@Test
public void testQuery() throws Exception {
// 模拟一个Get请求
mockMvc.perform(MockMvcRequestBuilders.get("/user")
// 媒体类型
.contentType(MediaType.APPLICATION_JSON_UTF8))
// 对请求成果的期望
.andExpect(MockMvcResultMatchers.status().isOk())
// 期望返回的是一个调集,调集的长度是3
.andExpect(MockMvcResultMatchers
.jsonPath("$.length()")
.value(3));
}
文章插图
5我们执行该单位测试,可是测试没有经由过程,原因是因为我们期望的返回码是200,可是现实返回的是404,是因为我们还没有编写一个/user的请求 。
文章插图
6新增一个/user请求的类,返回值为null如下图所示,执行单位测试后固然不报404的错误了,可是测试依旧不经由过程,因为期望的返回值不克不及是null,是以我们在编写代码的时辰还要给一个切当的返回值,我们返回有三个对象的list,可以看到经由过程了单位测试 。
文章插图
文章插图
7若是想在单位测试中添加参数,利用.param()进行参数传递,响应的方式中利用@RequestParam注解传递参数 。
推荐阅读
- 微信公众号页面模版如何制作
- 如何搜索找到陌生人
- ZigBee模块ZM32如何实现无线通信
- 如何在下雨天考科目三
- 如何给自己写高大上的生日祝语
- 北方桂花可以种在户外吗,如何过冬
- 胃不好的人如何养胃?
- 如何管理好一个部门
- 如何追求狮子座男生
- excel数组公式如何使用