У меня есть класс, аннотированный с помощью @WebListener, расширяющий ServletContextListener, который тестирует другой класс, который выполняется. Когда я тестирую вручную (т. Е. Работает в Tomcat), он работает, но в моем тесте JUnit класс @WebListener никогда не выполняется. Я предполагаю, что мне нужно добавить что-то в мою конфигурацию, чтобы заставить его выполнить, но я не уверен, что. Или мне нужно запустить его вручную в тесте?Тестирование Spring WebListener
EDIT: Вот основы класса
@WebListener
public class MyListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// Retrieve spring application context
ServletContext servletContext = event.getServletContext();
springContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
...
}
...
}
я добавил в мой тестовый класс:
@Before
public void mockInit() {
MockServletContext mockContext = new MockServletContext();
new MyListener().contextInitialized(new ServletContextEvent(mockContext));
}
Но springContext
переменная в contextInitialized
равна нулю.