Spring Boot(四):单元测试(工程师必备素养)之API测试

一、API的单元测试

1.首先创建test类,上一篇博客将的是手动创建,这里讲自动创建

1)在需要创建单元测试的controller上右击选——>go to——>test

Spring Boot(四):单元测试(工程师必备素养)之API测试_第1张图片

2)选create


Spring Boot(四):单元测试(工程师必备素养)之API测试_第2张图片

3)选择需要单元测试的方法,我这里就一个


Spring Boot(四):单元测试(工程师必备素养)之API测试_第3张图片

4)创建成功

Spring Boot(四):单元测试(工程师必备素养)之API测试_第4张图片

2.添加注入的信息和填充方法,如下

```

packagecom.example.demo.controller;

importorg.junit.Test;

importorg.junit.runner.RunWith;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;

importorg.springframework.boot.test.context.SpringBootTest;

importorg.springframework.test.context.junit4.SpringRunner;

importorg.springframework.test.web.servlet.MockMvc;

importorg.springframework.test.web.servlet.request.MockMvcRequestBuilders;

importorg.springframework.test.web.servlet.result.MockMvcResultHandlers;

importorg.springframework.test.web.servlet.result.MockMvcResultMatchers;

import staticorg.junit.Assert.*;

@RunWith(SpringRunner.class)//表明要在测试环境跑了,底层使用的junit测试工具

@SpringBootTest

@AutoConfigureMockMvc

public classUserControllerTest {

//引入MockMvc

@Autowired

privateMockMvcmvc;

@Test

public voidassetsSummary()throwsException {

mvc.perform(MockMvcRequestBuilders.get("/login"))

.andExpect(MockMvcResultMatchers.status().isOk());

}

}

```

解释:

@AutoConfigureMockMvc启动的时候自动注入MockMvc

MockMvc的一些属性如下:

perform:执行一个RequestBuilder请求,会自动执行SpringMVC的流程并映射到相应的控制器执行处理;

andExpect:添加ResultMatcher验证规则,验证控制器执行完成后结果是否正确;

andDo:添加ResultHandler结果处理器,比如调试时打印结果到控制台;

andReturn:最后返回相应的MvcResult;然后进行自定义验证/进行下一步的异步处理;

扩展:具体详细属性可参考:

http://www.cnblogs.com/lyy-2016/p/6122144.html

添加一些属性执行结果如下:


Spring Boot(四):单元测试(工程师必备素养)之API测试_第5张图片


3.run的正确结果

Spring Boot(四):单元测试(工程师必备素养)之API测试_第6张图片

4.更改url,继续run,错误结果


Spring Boot(四):单元测试(工程师必备素养)之API测试_第7张图片

404,不存在该地址

二、打包时,单元测试的执行顺序

1)单元测试通过,才能打包成功

执行install或者命令mvn install,生成可执行jar包时会进行单元测试

Spring Boot(四):单元测试(工程师必备素养)之API测试_第8张图片

先执行单元测试,单元测试通过

Spring Boot(四):单元测试(工程师必备素养)之API测试_第9张图片

单元测试通过,打包成功

Spring Boot(四):单元测试(工程师必备素养)之API测试_第10张图片

2)修改UserControllerTest中需要测试的url的路径

若单元测试不通过,打包不成功



Spring Boot(四):单元测试(工程师必备素养)之API测试_第11张图片



三、总结

单元测试虽然容易掌握,但是谁又能对自己所写的接口在发布之前全部通过单元测试呢?单元测试,是开发者的一个基本素质,关于他的使用,还需要好好好思考一下。

你可能感兴趣的:(Spring Boot(四):单元测试(工程师必备素养)之API测试)