springboot引入单元测试
前言
单元测试是做项目的必须步骤之一,项目在编写单元测试代码遵守BCDE原则,以保证被测试模块的交付质量。
一、引入单元测试
pom文件添加如下代码
<!-- 单元测试类 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter- test</artifactId>
<scope>test</scope>
</dependency>
根据阿里巴巴编码规范 单元测试必须创建在src/test/java目录下
以xxTest命名
单元测试类需要添加如下注解
在单元测试类上
@SpringBootTest
classes指定springboot的启动类
webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT 随机生成一个端口号
在要启动的测试类上
@Test
二、单元测试必须遵守的BCDE原则
⚫ B:Border,边界值测试,包括循环边界、特殊取值、特殊时间点、数据顺序等。
⚫ C:Correct,正确的输入,并得到预期的结果。
⚫ D:Design,与设计文档相结合,来编写单元测试。
⚫ E:Error,强制错误信息输入(如:非法数据、异常流程、业务允许外等),并得到预期的结果。
总结
不要对单元测试存在如下误解:
⚫ 那是测试同学干的事情。
⚫ 单元测试代码是多余的。系统的整体功能与各单元部件的测试正常与否是强相关的。
⚫ 单元测试代码不需要维护。一年半载后,那么单元测试几乎处于废弃状态。
⚫ 单元测试与线上故障没有辩证关系。
好的单元测试能够最大限度地规避线上故障,强烈推荐大家一定要写完功能之后好好进行单元测试,如果是高并发项目还要用Jmeter进行压力测试。