背景
基于 springboot 微服务架构给单元测试带来的问题:
- springboot 单元测试启动家长过程非常缓慢,后期服务启动达到分钟级,非常影响效率
- 服务之间相互依赖非常严重,单元测试的运行非常依赖其它服务稳定性
- 第三方服务和中间件,测试过程产生大量垃圾数据,污染环境,非常笨重,甚至产生资损。
解决办法
采用 EasyMock, PowerMock,Mockito 等mock 框架, 屏蔽外部依赖,还原单元测试本身。
Mockito使用
由于spring-boot-starter-test 默认集成了 Mockito的依赖,本文优先介绍 Mockito框架的使用。
依赖
一般不需要手动指定
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>3.3.3</version>
</dependency>
导入
导入常用静态方法
import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
模拟对象
Mock 对象的创建
语法: mock(class or interface)
用例:
OrderService o