Instanciação simulada automática em um teste Spring JUnit

Eu tenho uma definição de bean XML de Spring para a qual desejo gravar testes de integração. A definição do bean XML é parte de um contexto de aplicativo maior em que vários desses arquivos são incluídos<import>. Dentro da definição, faço referência a vários beans provenientes de outros arquivos.

Para o meu teste de integração, gostaria de instanciar a definição autônoma e usar mocks do Mockito para todos os outros beans. Até agora, estou usando algo assim:

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>

Eu gostaria de automatizar a seção de zombaria bastante entediante: Idealmente, eu gostaria de ter todos os beans que não são encontrados no contexto do aplicativo a serem reproduzidos automaticamente. opart-to-test.xml usa@Autowired bem como beans que são definidos usando referências de nome. Eu só uso arquivos de definição de bean XML e não uso@Configuration classes nem@Component anotações.

Eu olhei em como usar um carregador de contexto personalizado em@ContextConfiguration(loader=...), mas ainda não encontrei um ponto de extensão apropriado para fazê-lo. Sprinockito não parece endereçar este problema.

Existe algum outro projeto que já resolve esse problema? Se não, onde eu iria estender o Spring para criar os mocks automaticamente?

questionAnswers(2)

yourAnswerToTheQuestion