我有一个支持Spring的JUnit测试.它加载我的默认applicationContext.现在我想为我的测试替换单个bean,即使用testEntityManager的entityManager.
我可以想象三种可能的方式,看起来并不优雅:
是否有一个最佳实践如何去做正确的?
这个问题的背景是:我真的只想替换边界附近的对象(DB,Webservices等)
此致
编辑:我现在已经解决了这个问题:我在属性路径和测试类路径中添加了一个属性文件,并将Spring别名与属性占位符结合使用.这样我就可以将我的bean连接到测试中的不同实现.
小智 9
当您从多个位置加载上下文时,Spring允许您覆盖bean定义.
因此,您不一定需要拆分上下文"/applicationContext.xml".而是为测试"/applicationContext-test.xml"提供了一个额外的应用程序上下文,您可以在其中覆盖所需的bean.然后引入两个配置并让测试配置中的bean覆盖生产配置中的bean.
@ContextConfiguration({"/applicationContext.xml", "/applicationContext-test.xml"})
Run Code Online (Sandbox Code Playgroud)