Um diese Frage zu beantworten, sollten wir Spring 2.x-Versionen wiederholen.
Wenn Sie eine Bean in Ihrer @BeforeTest
Klasse "autowire" möchten, können Sie die ApplicationContext
Schnittstelle verwenden. Nehmen wir ein Beispiel sehen:
@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);
}
Was geschieht: die ClassPathXmlApplicationContext
benutzen wir alle Bohnen in der application-context.xml
Datei enthalten sind, instanziieren.
Mit context.getBean()
lesen wir die angegebene Bean (es muss den Namen der Bean übereinstimmen!); und dann können Sie es für Ihre Initialisierung verwenden.
Sie sollten der Bohne einen anderen Namen geben (das ist die dao2
!) Sonst kann Spring normal "autowired" nicht mit der vordefinierten Bean arbeiten.
Als eine Randnotiz, wenn Ihr Test AbstractTransactionalJUnit4SpringContextTests
erweitert, können Sie einige Initialisierung mit executeSqlScript(sqlResourcePath, continueOnError)
; Methode, so dass Sie nicht auf eine Klasse/Methode angewiesen sind, die Sie auch separat testen müssen.
Dieser Blog-Eintrag können Ihnen helfen, ausgeführt überspringen wird - http: //saltnlight5.blogspot .in/2012/09/enhancing-spring-test-framework-with.html – Mithun