当为使用restemplate(以及引擎盖下的ribbon)和eureka来解决服务b依赖关系的spring引导应用程序(servicea)编写集成测试时,我在调用servicea时遇到了一个“no instances available”异常。
我试图通过wiremock模拟服务b,但我甚至没有访问wiremock服务器。restemplate似乎试图从eureka获取服务示例,而eureka在我的测试中没有运行。它是通过属性禁用的。
服务a呼叫服务b。服务发现是通过restemplate、ribbon和eureka完成的。
有人有一个包括spring、eureka和wiremock的工作示例吗?
3条答案
按热度按时间2o7dmzc51#
这就是我在项目中所做的:
在项目配置中的某个位置:
还有其他的课程:
和测试类
SomeRestClass
:注意:我使用了eureka客户端,因为否则您必须模拟eureka服务器。所以我在test application.properties中添加了eureka.client.enabled=false
gupuwyp22#
我昨天也遇到了同样的问题,为了完整起见,这里是我的解决方案:
这是我的“现场”配置下
src/main/java/.../config
:我将此配置添加到test文件夹
src/main/test/java/.../config
:在测试用例中,我激活了profile
test
:q0qdq0h23#
希望这能帮助别人。我在ribbon上也犯了同样的错误,但没有eureka。
帮助我的是
1) 升级到wiremock(2.21)的最新版本
2) 为url“/”添加wiremock规则存根以回答ribbon的ping