Chciałbym zarejestrować niektóre zasięgi internetowe w kontekście sprężyny w mojej metodzie @BeforeTest
. Ale okazuje się, że kontekst wiosny wciąż jest w tym punkcie.Uzyskiwanie dostępu do kontekstu sprężynowego w testng @BeforeTest
Test działa dobrze, jeśli zmienię na @BeforeMethod
. Zastanawiam się, jak mogę uzyskać dostęp do kontekstu w @BeforeTest
, ponieważ nie chcę, aby kod rejestracyjny zakresu był powtarzany dla każdej metody testowej.
Poniżej znajdują się fragmenty kodu.
public class MyTest extends MyBaseTest {
@Test public void someTest() { /*...*/ }
}
@ContextConfiguration(locations="/my-context.xml")
public class MyBaseTest extends AbstractTestNGSpringContextTests {
@BeforeTest public void registerWebScopes() {
ConfigurableBeanFactory factory = (ConfigurableBeanFactory)
this.applicationContext.getAutowireCapableBeanFactory();
factory.registerScope("session", new SessionScope());
factory.registerScope("request", new RequestScope());
}
/* some protected methods here */
}
Oto komunikat o błędzie podczas uruchamiania testu:
FAILED CONFIGURATION: @BeforeTest registerWebScopes java.lang.NullPointerException at my.MyBaseTest.registerWebScopes(MyBaseTest.java:22)
Czy znasz dokumentację dotyczącą tego, dlaczego wstrzyknięci członkowie nie są dostępni w metodach '@ BeforeTest', a nawet' @ BeforeSuite'? – ecbrodie
10x :) łatwiej jest wtedy pisać procesor postu bean –