可以在加载的Spring Context中以编程方式替换Spring Bean

时间:2011-10-28 09:24:01

标签: spring integration-testing applicationcontext

我想写一个集成测试,但有一个小的限制。我有一个我想模拟的TimeSourceBean。此TimeSourceBean在应用程序中使用了几次深度。 (无法用反射做到这一点)

一切都是通过autowire完成的。

我想我可以在我的测试中加载一个带有我喜欢的实现的附加XML。 见:here

但非常好的是,我可以在测试中创建我的模拟TimeSourceBean并将其注册(替换原始bean)到上下文

=>所以在我开始测试之前,我创建了mock并注册我的bean:

context.registerBean(timeSourceBeanMockVersion);

如果有可能,有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以添加另一个实现相同接口的bean /类(希望您使用它们),并将其他bean类标记为@Primary。

但是你需要确保只在你需要的测试用例中加载这个主bean。