如何测试javax Response.readEntity(Class<;T>;类型)?

如何测试javax Response.readEntity(Class<;T>;类型)?,java,jax-rs,javax.ws.rs,Java,Jax Rs,Javax.ws.rs,我们使用javax.ws.rs.core.Response.readEntity(类类型)将JSON响应解析为POJO。我想编写测试来确保实体正确映射到POJO中——因此,如果json中的布尔“valid”为true,那么POJO中的布尔“valid”也为true——反之亦然 我想不出怎么做。有什么想法或技巧吗?测试编组是jax rs服务中不容易用普通junit测试的事情之一。例如,如何确保没有忘记注释@Path或@QueryParam,以便junit测试调用方法成功,但实际调用服务失败 为这些

我们使用javax.ws.rs.core.Response.readEntity(类类型)将JSON响应解析为POJO。我想编写测试来确保实体正确映射到POJO中——因此,如果json中的布尔“valid”为true,那么POJO中的布尔“valid”也为true——反之亦然


我想不出怎么做。有什么想法或技巧吗?

测试编组是jax rs服务中不容易用普通junit测试的事情之一。例如,如何确保没有忘记注释
@Path
@QueryParam
,以便junit测试调用方法成功,但实际调用服务失败

为这些测试提供解决方案。本质上,Arquillian支持在运行的javaee容器中执行测试。测试设置包括构建war和部署应用程序。通过这种方式,您可以测试堆栈的所有元素,并确保所有元素都在一起:编组、请求路由、http过滤器等等

如果您正在使用jersey jax rs堆栈,也可以使用

更完整,因为它支持使用多个容器进行测试(甚至支持selenium),并且不会将您与jax-rs实现捆绑在一起

我想编写测试以确保实体正确映射到POJO中

如果您只想测试POJO是否正确映射,并且您使用Jackson作为JSON提供程序,那么只需使用
ObjectMapper
反序列化JSON即可。这是怎么回事


请注意,我只想测试我们为使用API而构建的客户机。这些客户机与API是解耦的,所以我想做的就是以某种方式提供API的预期响应,并断言我的客户机按照预期处理它。所以,是的,我希望通过简单的junit测试来实现——如果可能的话。很简单吧。谢谢你,先生。
final ObjectMapper mapper = new ObjectMapper();
POJO pojo = mapper.readValue(jsonString, POJO.class);
// assertions