如何在Jersey Unit Test Framework 2.5中设置Servlet Context

时间:2014-02-08 18:24:00

标签: unit-testing maven servlets jersey jersey-2.0

我有两个问题:

1)如何为扩展JerseyTest的单元测试设置servlet Context。从我所做的研究来看,似乎我必须为TestContainer创建TestFactory并传入AppDescriptor,但这似乎应该更复杂。还有其他建议吗?

一般情况下,寻找一种方法在我的Jersey资源类的单元测试中设置Servlet Context,这通常由web.xml完成​​。

示例:

@Path(value = "/service")
public class Foo{

@Context ServletContext ctx;

@GET
@Path(value="/list")
public String list() {
    Controller ctrl = new Controller();
    ctx.setAttribute("controller", ctrl);
    return ctrl.getList();
}

}

public class FooUnitTest extends JerseyTest
{
    @Test
    public void testService()
    {

         //set/how to configure the context?
    }
}

目标是模拟控制器,以便将其传递到上下文中。

2)使用

中的球衣测试有什么区别
<dependency>
    <groupId>com.sun.jersey.jersey-test-framework</groupId>
    <artifactId>jersey-test-framework-grizzly</artifactId>
    <version>1.5-SNAPSHOT</version>
    <scope>test</scope>
</dependency>

VS。

<dependency>
    <groupId>org.glassfish.jersey.test-framework.providers</groupId>
    <artifactId>jersey-test-framework-provider-bundle</artifactId>
    <version>2.4.1</version>
</dependency>

这是Jersey framework 2.5

1 个答案:

答案 0 :(得分:-1)

您可以使用org.springframework.mock.web.MockServletContext类来模拟servlet上下文。它是Spring框架的一部分。

MockServletContext