【发布时间】:2013-11-17 11:14:30
【问题描述】:
我有一个使用一些 Spring 上下文的测试。在这些上下文中,声明了许多 bean。 我希望测试使用上下文 bean 的实际实现,除了其中一个,我想使用 MOCK。
我尝试将 Test 设为 Configuration 组件(带有 @Configuration 注释),但 XML 似乎优先于 @Bean 注释,所以它不起作用,这样:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"context1.xml", "context2.xml", ...})
@Configuration
public class MyTest{
@Inject
private MyTargetBean target;
private AnotherBean myMock = mock(AnotherBean.class);
@Bean
public AnotherBean myMock() { return myMock; }
.....
我知道我可以在 XML 中定义 Mocks,但为此我需要一个额外的 XML 文件用于我希望在其中执行此操作的每个测试。我想避免这种复杂性。
除了通过 XML 之外,有没有办法在上下文中注入 bean(如模拟)?
谢谢!
【问题讨论】:
标签: java spring dependency-injection mocking mockito