单元测试的时候我们要屏蔽掉外部依赖,对于微服务,配置中心和注册中心也要屏蔽,不然启动的时候就会进行网络调用,不但会影响单元测试的执行速度,还会产生网络报错。
为了方便管理,可以使用一个测试用的配置文件来覆盖服务的配置。使用注解TestPropertySource 可以正确加载测试配置覆盖服务的其他配置项。我们可以定义一个测试基类,然后让工程里的所有测试类都继承,统一管理配置的入口。
@SpringBootTest
@TestPropertySource("classpath:test.yaml")
public class BaseTest {}
public class UserControllerTest extends BaseTest {}
要关闭Apollo配置中心和Eureka注册中心只需要在test资源文件夹的test.yaml里面添加下面两项配置即可
apollo.bootstrap.enabled: false
eureka.client.enabled: false
#假如使用active来管理配置,那么想在单元测试代码里屏蔽所有的active可以这么写
spring.profiles.active: