进行模块测试
单元测试
有责任的开发人员都应该写单元测试
对项目进行打包的时候会自动执行单元测试 mvn clean package
测试内容:
- service
- API
代码
最终效果
- 模拟mockMvc对API进行测试
- 对spring-boot的Test进行简单的整理
实现
基础环境搭建
首先要对类有一个注解
1 | //在JUnit中有很多个Runner,他们负责调用你的测试代码,每一个Runner都有各自的特殊功能, |
对一些常见的test注释的介绍
1 | /** |
对service进行测试
这个是比较简单的,和常规的没有什么差别
有一个需要注意的点是事务方面,需要添加注释@Transactional,这样的话,如果进行了数据库的操作,那么就会进行回滚
对API进行测试
想要对API进行测试
首先需要对类加一个新的注释@WebAppConfiguration
1 | (SpringRunner.class) |
要模拟创建一个mock的环境
1 |
|
同时,有了变量之后,是没有初始化的,这个时候要用到@Before,在测试前进行初始
1 | /** |
环境搭建好了,那么接下来进行一手mock,注释在里面写好了,这个方法将参数写在了里面
对参数的解析使用了json-path,需要添加pom
1 | <!--用于检测JSON格式的响应数据--> |
接下来开始真正的代码
1 | /** |
在实际中,有可能参数是一个类
1 | /** |
注解
类注解
- @RunWith(SpringRunner.class)//底层junit测试工具,在测试环境跑
- @SpringBootTest //启动整个Spring的工程
方法注解
- @Test
- @Transactional,test对数据库进行操作时,可以在测试过后回滚数据库状态,因此仅仅只是测试
对service测试
自己编写方法测试
- test文件夹下,新建用于测试的.java文件
- 添加注解
- 右键Run 该test类 或者 指定的方法 进行测试
- 显示test passed 则测试成功,test failed 则测试失败
使用IDE
- 选中测试的方法,点击GoTo,点击Test 点击create
- 默认会写好方法注释@Test,但是没类注释
对API测试
可以测试的内容:
URL
返回的内容
示例
添加类注释和方法注释
添加新的类注解@AutoConfigureMockMvc
注入MockMvc类
使用mvc.perform进行URL请求测试
mvc.perform(MockMvcRequestBuilders.get(“/grils”)) 请求的路径
.andExpect(MockMvcResultMathers.status().isOk())对返回的状态码进行判断
.andExpect(MockMvcResultMathers.content().string(“abc”));对返回的内容进行判断,是否等于abc
判断是否成功
- 使用断言,如查询一个对象是否存在
Assert.assertNotNull(result);