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

今天为大家介绍如何编写针对Restful API的测试用例,对于Restful API的测试我们可能想到的是通过浏览器请求去实现,但是Restful更多的POST、PUT、DELETE是没办法通过浏览器测试的,因此我们需要测试框架帮我们去完成。

东西/原料

  • IntelliJ IDEA

方式/步调

  1. 1

    起首需要引入spring-boot-starter-test,会帮我们把测试框架引入进来。

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

  2. 2

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

  3. 3

    然后利用@Before注解来初始化mockMvc,@Before注解会在每个测试用例挪用之前执行。

    @Before
    public void setup() {
       mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
    }

  4. 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. 5

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

  6. 6

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

  7. 7

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

  8. 8

    若是想添加分页参数到单位测试中,我们在方式中利用Pageable去领受参数,利用@PageableDefault()注解给分页添加默认值。

    END

注重事项

  • 可以恰当领会一下jsonPath的写法。
  • 发表于 2020-02-29 17:00
  • 阅读 ( 854 )
  • 分类:其他类型

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
联系我们:uytrv@hotmail.com 问答工具