Доступ к контексту Spring в testng's @BeforeTest

Я хотел бы зарегистрировать некоторые веб-области в контексте Spring в моем методе @BeforeTest. Но оказывается, что весенний контекст все еще nullв этой точке.

Тест проходит нормально, если я перейду на @BeforeMethod. Интересно, как я могу получить доступ к контексту в @BeforeTest, потому что я не хочу, чтобы код регистрации области действия повторялся для каждого метода тестирования.

Ниже приведены фрагменты моего кода.

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 */
}

Вот сообщение об ошибке при запуске теста:

FAILED CONFIGURATION: @BeforeTest registerWebScopes
java.lang.NullPointerException
    at my.MyBaseTest.registerWebScopes(MyBaseTest.java:22)
5
задан kuporific 22 July 2014 в 20:19
поделиться