这是一个示例Resource类:
@Path("/resource")
public class SomeResource {
@GET
@Produces({MediaType.APPLICATION_XML})
public String someMethod(@QueryParam("param1") String param1, ..., @Context HttpServletRequest request) {
String remoteUser = request.getRemoteAddr();
// Business logic here.
return response;
}
}
Run Code Online (Sandbox Code Playgroud)
而JerseyTest的资源:
public class TestSomeResource extends JerseyTest {
@Override
protected Application configure() {
enable(TestProperties.LOG_TRAFFIC);
return new ResourceConfig(SomeResource.class);
}
@Test
public void testXMLResponse() {
String response = target("resource")
.queryParam("param1", param1)
// More parameters here.
.request()
.accept(MediaType.APPLICATION_XML)
.get(String.class);
// Some assertions on response.
}
}
Run Code Online (Sandbox Code Playgroud)
除了@Context HttpServletRequest用作输入参数的资源外,我能够为所有其他资源运行泽西测试.它给了一个InternalServerErrorException: HTTP 500 Internal …