【发布时间】:2017-07-31 18:35:22
【问题描述】:
我们正在尝试在我们的一个项目中使用 Feign + Ribbon。在生产代码中,我们没有问题,但在 JUnit 测试中有一些问题。
我们正在尝试模拟多种情况(服务失败、正常运行、异常等),因此我们需要在集成测试中多次配置 Ribbon。不幸的是,我们注意到即使我们销毁 Spring 上下文,部分状态可能仍然存在于静态变量中的某个地方(例如:新测试仍然连接到以前套件中的平衡器)。
有什么推荐的方法,如何清除这两个工具的静态状态? (类似于Hystrix.reset())
提前致谢!
我们尝试在每个套件之后重置 JVM - 它运行良好,但不是很实用(我们必须在 Gradle 和 Idea 中都设置它(因为 Idea 测试调谐器不支持开箱即用))。我们还尝试在测试之间重命名服务 - 这可以说是 99%(它有时会由于某种原因失败......)。
【问题讨论】:
-
问题似乎仍未解决。我刚刚遇到了功能区 2.3.0、hystrix-core 1.5.18、open feign 10.2.3、Spring Boot 2.1.9 或 2.1.17。使用
@SpringBootTest的不同测试,具有不同属性的单独 Spring 应用程序上下文,会受到影响,因为 Feign 客户端在第一个此类测试的运行时使用 Ribbon/Feign (?) 以某种方式缓存的配置。一项一项运行的所有测试都是正确的。
标签: java spring netflix-feign netflix-ribbon feign