Автоматическая инстанция в тесте Spring JUnit

У меня есть определение bean-компонента Spring XML, для которого я хочу написать интеграционные тесты. Определение bean-компонента XML является частью более широкого контекста приложения, где несколько таких файлов включены с использованием<import>, Внутри определения я ссылаюсь на несколько бинов, которые приходят из других файлов.

Для моего интеграционного теста я хотел бы создать отдельное определение и использовать mockito mocks для всех других bean-компонентов. До сих пор я использую что-то вроде этого:

FooIntegrationTest.java

<code>@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class FooIntegrationTest {
  @Autowired private ClassUnderTest underTest;
  @Autowired private MockedClass mock;

  @Test
  public void testFoo() {
  }
}
</code>

FooIntegrationTest-context.xml

<code><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
  <import resource="part-to-test.xml" />

  <bean id="mockedClassReferencedByName" class="org.mockito.Mockito" factory-method="mock" c:classToMock="SomeMockedClass" />
  <bean class="org.mockito.Mockito" factory-method="mock" c:classToMock="OtherMockedClassReferencedByType" />
  <bean class="org.mockito.Mockito" factory-method="mock" c:classToMock="MockedClass" />
  ...
</beans>
</code>

Я хотел бы автоматизировать довольно утомительную секцию насмешек: в идеале я хотел бы, чтобы все бины, которые не найдены в контексте приложения, были автоматически смоделированы.part-to-test.xml использования@Autowired а также bean-компоненты, которые устанавливаются с помощью ссылок на имена. Я использую только файлы определения XML bean, и ни один не использую@Configuration ни классы ни@Component аннотаций.

Я рассмотрел, как использовать пользовательский контекстный загрузчик в@ContextConfiguration(loader=...), но я еще не нашел подходящую точку расширения для этого. Sprinockito, похоже, не решает эту проблему.

Есть ли какой-нибудь другой проект, который уже решает эту проблему? Если нет, то где бы я расширил Spring, чтобы автоматически создавать макеты?

Ответы на вопрос(2)

Ваш ответ на вопрос