我有一个对象ServletContextListener
,根据 Java EE servlet 规范,servlet 容器在部署/启动时通过其contextInitialized(ServletContext)
方法调用该对象。
我正在尝试编写一个单元测试来模拟 servlet 容器的启动和部署ServletContextListener
(以便我可以确定应用程序是否正确初始化)。
这可能吗?如果可以,怎么做?它是特定于容器的吗?如果是这样,我正在使用 OGS。寻找看起来像这样的代码:
@Test
public void shouldBootstrapAppAtDeployTime() {
// Given
GlassFishContainer container = new GlassFishContainer(); // ha!
MyApp app = mock(MyApp.class); // MyApp implements ServletContextListener
// When - deploy app to container
// Causes app.contextInitialized(ServletContext) to be called
container.deploy(app);
// Then - verify the method was called with any ServletContext
mock.verify(app.contextInitialized(Matchers.any());
}
这是一个草率的伪代码,其中包含一些实现不佳的 Mockito 用于演示目的(只是为了表达我的意图)。提前致谢!