我有一個用@WebListener註解的類,擴展了ServletContextListener,我測試的另一個類依賴於執行。當我手動測試(即在Tomcat中運行)時,它可以工作,但在我的JUnit測試中,@WebListener類永遠不會執行。我假設我需要添加一些東西到我的配置來讓它執行,但我不知道是什麼。或者我需要在測試中手動運行它嗎?測試Spring WebListener
編輯: 下面是我加入到我的測試類的類
@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));
}
但contextInitialized
的springContext
變量爲空。