如何编写针对Restful API的测试用例

今天为大家介绍如何编写针对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>

如何编写针对Restful API的测试用例

文章插图

2起首我们建立一个测试类UserControllerTest,然后加上@RunWith(SpringRunner.class和@SpringBootTest的注解 。 接下来我们经由过程@Autowired
private WebApplicationContext wac来伪造web情况 。
如何编写针对Restful API的测试用例

文章插图

3然后利用@Before注解来初始化mockMvc,@Before注解会在每个测试用例挪用之前执行 。
@Before
public void setup() {
   mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
}
如何编写针对Restful API的测试用例

文章插图

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));
}
如何编写针对Restful API的测试用例

文章插图

5我们执行该单位测试,可是测试没有经由过程,原因是因为我们期望的返回码是200,可是现实返回的是404,是因为我们还没有编写一个/user的请求 。
如何编写针对Restful API的测试用例

文章插图

6新增一个/user请求的类,返回值为null如下图所示,执行单位测试后固然不报404的错误了,可是测试依旧不经由过程,因为期望的返回值不克不及是null,是以我们在编写代码的时辰还要给一个切当的返回值,我们返回有三个对象的list,可以看到经由过程了单位测试 。
如何编写针对Restful API的测试用例

文章插图

如何编写针对Restful API的测试用例

文章插图

7若是想在单位测试中添加参数,利用.param()进行参数传递,响应的方式中利用@RequestParam注解传递参数 。

推荐阅读