2017-07-31 53 views
0

我们试图在我们的项目中使用Feign + Ribbon。在生产代码中,我们没有问题,但是我们在jUnit测试中有一些问题。Feign with Ribbon:重置

我们试图模拟许多情况(失败的服务,正常运行,异常等),因此我们需要多次配置功能区集成。不幸的是,我们注意到,即使我们销毁Spring上下文,状态的一部分仍然可能存在于静态变量的某处(例如:新测试仍然连接到上一个套件中的平衡器)。

有没有推荐的方法,如何清除这两个工具的静态? (类似Hystrix.reset())

在此先感谢!


我们试图每个套件后重置JVM - 它的作品完美,但它不是很实用(我们必须将其设置在两个摇篮和Idea(作为思想试验TUNNER不接受这个开箱) )。我们也尝试重命名测试的服务 - 这适用于可以说,99%(有时会由于某种原因失败...)

回答

0

你应该提交bug到色带如果是这种情况,有一些静态的某处。找出最小代码导致问题的原因,如果你无法做到这一点,但他们不会做任何事情。在您的代码库中,您应该搜索任何不是最终的静态使用,并重构它们(如果存在)。

此外,您可能会发现在各种不同类型的测试之间做出强烈的区分是有用的。这听起来不像你正在为我做单元测试。即使你只是模拟这些服务,并模拟故障,这种测试是一个真正的集成测试,因为你如果带子是用自己的组件,这实在是一个集成测试配置正确的测试。这将是一个单元测试,如果你仅测试您的组件被正确配置功能区,不知道我是否有意义有哈哈这是一个微妙的区别,但它在您的测试很大的影响。

在另一张笔记上,不要忽视你现在拥有的一定是一个坏主意。这可能是有一些重量级集成测试检查假死的行为,如果这是一个关键任务功能是非常有用的,海事组织它在这种情况下,一个伟大的想法。但这是一个重量级的综合测试,应该这样对待。您甚至可能希望使用某些容器魔术来实现这种测试,并且在各种不同的故障情况下都会失败。这将住在CI以及与每个提交,除非他们直接就集成了一块功能工作通常开发商将不能运行那些家伙。