如何解决模拟FeignClient不会替换Spring Boot 2.3.3中的应用程序FeignClient
从Spring Boot 2.2.2升级到2.3.3后,不替换测试中的伪客户端。 模仿的bean似乎已实例化,但是它不能代替应用程序提供的实际FeignClient。
spring-cloud-starter-openfeign版本:2.2.5.RELEASE
spring boot版本:2.3.3.RELEASE
春季版:5.2.8。发布
我发现与这句话相关的问题已经解决,但对我来说似乎并不能代替实际的FeignClient。 https://github.com/spring-cloud/spring-cloud-openfeign/issues/336
https://github.com/spring-cloud/spring-cloud-openfeign/issues/337
@SpringBootTest(classes = [SomeApplication.class],webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ContextConfiguration(classes = [ApplicationTestConfig])
@ActiveProfiles("test")
@TestExecutionListeners([DependencyInjectionTestExecutionListener,TransactionalTestExecutionListener])
@AutoConfigureMockMvc
abstract class AbstractControllerSpecification extends AbstractSpecification {}
对于ApplicationTestConfig,我有类似的东西
@EntityScan(basePackages = "somepackage")
@ComponentScan(basePackages = "somepackage")
@IntegrationComponentScan(basePackages = "somepackage")
@Profile("test")
class ApplicationTestConfig {
DetachedMockFactory factory = new DetachedMockFactory()
@Bean
SomeResource someResource() {
factory.Mock(someResource)
}
}
我发现一种解决方法是设置FeignClient(primary = false),它似乎工作正常,但我认为这不是解决方案。
任何想法在2.3.3中是否仍然存在问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。