У меня есть тест, который использует некоторые Spring контексты. В этих контекстах объявляется ряд beans. Я хочу, чтобы тест использовал фактическую реализацию beans контекстов, EXCEPT для одного из них, для которого я хочу использовать MOCK.
Я попытался сделать компонент Test a 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; }
.....
Я знаю, что могу определить Mocks в XML, но для этого мне понадобится дополнительный XML файл для каждого теста, в котором я хочу это сделать. Я хочу избежать этой сложности.
Есть ли способ вставить bean (например, макет) в контексте, помимо XML?
Спасибо!