相关疑难解决方法(0)

单元测试Spring Cloud Service的策略

给定以下Spring Cloud设置:A data-service可以访问数据库,可以访问eureka-service服务注册表和发现,第3个服务business-service是封装业务案例的各种服务之一.

单元测试data-service没问题,我只是关掉eureka via

eureka.client.enabled=false
Run Code Online (Sandbox Code Playgroud)

并使用内存数据库进行测试.

要访问data-servicefrom business-service,我正在使用一个带@FeignClient("data-service")注释的接口DataClient,这个接口是@Autowired需要的.如果两者都在运行,Eureka会发现该服务.这适用于所有服务运行的类似生产的设置.

但现在我想对我的一些功能进行单元测试business-service.用它来启动测试服务不是问题

@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@IntegrationTest("server.port:0")
@SpringApplicationConfiguration(classes = Application.class)
Run Code Online (Sandbox Code Playgroud)

就像我在做的那样data-service.问题是我的Eureka依赖发现FeignClient...所以我的测试类崩溃,因为自动装配我的DataClient实例不起作用.

我能告诉Spring使用伪造的实例来DataClient进行测试吗?或者是让我的测试运行可访问的运行实例data-service和我的Eureka服务器的唯一方法?

spring unit-testing spring-cloud netflix-eureka

3
推荐指数
1
解决办法
7828
查看次数