我有一个启用 Spring 的 JUnit 测试。它加载我的默认应用程序上下文。现在我想为我的测试替换一个bean,即用testEntityManager 替换entityManager。
我可以想象三种可能的方式,看起来不太优雅:
- 拆分上下文(defaultContext,emContext)并通过测试上下文文件覆盖上下文文件(测试资源中的emContext)
- 使用工厂并选择 testEntityManager (在生产代码中)
- 不使用 Spring,而是自己构建对象层次结构(最不可行的解决方案)
是否有最佳实践如何正确地做到这一点?
这个问题的背景是:我真的只想替换靠近边界的对象(DB,Webservices等)
此致
编辑:我现在已经通过这种方式解决了:我在类路径和测试类路径中添加了一个属性文件,并将 Spring 别名与属性占位符结合使用。通过这种方式,我能够将我的 bean 连接到测试中的不同实现。