Automatyczna próbna instancja w wiosennym teście JUnit

Mam definicję fasoli Spring XML, dla której chcę pisać testy integracji. Definicja fasoli XML jest częścią szerszego kontekstu aplikacji, w którym uwzględniono kilka takich plików<import>. Wewnątrz definicji odnoszę się do kilku ziaren pochodzących z innych plików.

W moim teście integracyjnym chciałbym utworzyć instancję definicji autonomicznie i użyć makiet Mockito dla wszystkich innych komponentów. Do tej pory używam czegoś takiego:

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>

Chciałbym zautomatyzować dość nudną sekcję szyderstwa: w idealnej sytuacji chciałbym, aby wszystkie fasole, które nie zostały znalezione w kontekście aplikacji, były wyszydzane automatycznie. Thepart-to-test.xml używa@Autowired jak również fasole, które są ustawiane za pomocą referencji nazw. Używam tylko plików definicji fasoli XML i nie używam ich@Configuration klasy ani@Component adnotacje.

Sprawdziłem, jak użyć niestandardowego programu ładującego kontekst w@ContextConfiguration(loader=...), ale nie znalazłem jeszcze odpowiedniego punktu do rozszerzenia. Sprinockito nie wydaje się zwracać uwagi na ten problem.

Czy jest jakiś inny projekt, który już rozwiązuje ten problem? Jeśli nie, to gdzie przedłużyć Spring, aby automatycznie utworzyć makiety?

questionAnswers(2)

yourAnswerToTheQuestion