spring-cloud feginClient unit testing @mockbean

最近单元测试时碰到需要mock feginClient的接口

因为项目中存在fegin的hystrix,在mock的时候会装在其中一个bean , cloud中的fegin是接口而hystrix又是接口的实现,所以在测试的时候会报错:


java.lang.IllegalStateException: Unable to register mock bean ..* expected a single matching bean to replace but found [..client,..clientHystrix]


其实测试启动@mockbean会使用自己装载的bean替换项目中的 找到了两个类似实体会失败。

解决:

在hystrix中增加@Profile("!test")对测试时忽略装载的状态

在test Class中加入@ActiveProfiles("test")  保证hystrix在测试时不会被检测装载 也就不会和相应的Fegin发生冲突

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容