如何使用Spring为JUnit测试注入ServletContext?

Jur*_*ass 17 java junit spring cxf

我想对使用Apache CXF编写的RESTful接口进行单元测试.

我使用ServletContext来加载一些资源,所以我有:

@Context
private ServletContext servletContext;
Run Code Online (Sandbox Code Playgroud)

如果我在Glassfish上部署它,则会注入ServletContext并且它会按预期工作.但我不知道如何在我的服务类中注入ServletContext,以便我可以使用JUnit测试来测试它.

我使用Spring 3.0,JUnit 4,CXF 2.2.3和Maven.

Chr*_*s J 21

在单元测试中,您可能想要创建MockServletContext的实例.

然后,您可以通过setter方法将此实例传递给服务对象.


anr*_*nre 16

从Spring 4开始,单元测试类上的@WebAppConfiguration注释应该足够了,参见Spring参考文档

@ContextConfiguration
@WebAppConfiguration
public class WebAppTest {
    @Test
    public void testMe() {}
}
Run Code Online (Sandbox Code Playgroud)