如何在SpringBootTest中覆盖应用程序Bean

时间:2016-11-11 21:46:31

标签: testing spring-boot integration

我正在为我的Spring Boot Web服务编写集成测试,并且需要使用测试实现替换Bean的注入(在这种情况下它实际上是Kafka Consumer对象)。

过去很简单,提供一个xml文件来定义备用bean实现或配置,但我们现在使用带有注释的Spring Boot和基于Java的配置。

我已经通过写得不好的Spring-Boot文档进行了斗争,并且无法正常工作。编写Spring文档的前提是读者已经知道有关Spring Boot的所有知识,因此几乎没用。

对不起,我没有代码要分享,因为我已经尝试了所有可能的解决方案而且没有一个能够正常运行。我正在寻找最佳实践解决方案示例...

更新:我很确定我在Spring发现了一个错误。尽管调用了bean初始化方法,但在之前的测试类之后运行测试类时,我为一个测试类覆盖bean的努力没有得到尊重!我怀疑第一个bean仍然被传递到Web应用程序,尽管它正在重新启动。

1 个答案:

答案 0 :(得分:0)

嘲笑是否足以让你 - 然后你应该看@MockBean - 见http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html#boot-features-testing-spring-boot-applications-mocking-beans

否则,这实际上取决于如何将真实的实现添加到应用程序上下文中,以及如果您自己拥有它。