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

2022-09-02 09:08:39

我想对一个用Apache CXF编写的RESTful接口进行单元测试。

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

@Context
private ServletContext servletContext;

如果我在Glassfish上部署它,ServletContext就会被注入,它的工作方式与预期一样。但是我不知道如何在我的服务类中注入ServletContext,以便我可以使用JUnit测试来测试它。

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


答案 1

在单元测试中,您可能希望创建一个 MockServletContext 的实例。

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


答案 2

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

@ContextConfiguration
@WebAppConfiguration
public class WebAppTest {
    @Test
    public void testMe() {}
}

推荐