Aby odpowiedzieć na to pytanie, powinniśmy podsumować wersje Spring 2.x.
Jeśli chcesz "wyposażyć" komponent bean w klasę @BeforeTest
, możesz użyć interfejsu ApplicationContext
. Zobaczmy przykład:
@BeforeClass
public static void init() {
ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");
EntityRepository dao2 = (EntityRepository) context.getBean("dao");
List<EntityRepository> all = dao2.getAll();
Assert.assertNotNull(all);
}
Co się dzieje: używając ClassPathXmlApplicationContext
jesteśmy każdy węzeł wszystkie ziaren zawartych w pliku application-context.xml
.
Z context.getBean()
odczytujemy określony komponent bean (musi on pasować do nazwy komponentu bean!); a następnie możesz go użyć do inicjalizacji.
Powinieneś nadać fasolce inną nazwę (to jest dao2
!) W przeciwnym razie Spring normal "autowired" nie może działać na predefiniowanym komponencie bean.
Na marginesie, jeśli test rozszerza się na AbstractTransactionalJUnit4SpringContextTests
, można przeprowadzić inicjalizację za pomocą executeSqlScript(sqlResourcePath, continueOnError)
; Metoda ta nie zależy od klasy/metody, którą należy również osobno przetestować.
To blogu może pomóc - http: //saltnlight5.blogspot .in/2012/09/enhancer-spring-test-framework-with.html – Mithun