尝试获取HttpServletRequest作为参数传递到Jersey Web Service帖子调用后,我的单元测试已损坏:
@RequestScoped
@Path("/por/req")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes({ MediaType.APPLICATION_JSON })
public class MyOwnWs {
@POST
@Path("/confirm")
public Response confirmarRequerimento(
@ApiParam(value = "Description", required = false)
final InputJson input,
@Context HttpServletRequest request) throws MyException {
Response response = null;
MyResult result = null;
String ipAdress = IpUtil.getIp(request);
// do stuff
return response;
}
}
在浏览器中测试很好,请求对象包含我的测试机ip地址。但是int灰白地进行单元测试时,请求对象始终为null,而我仍然没有找到模拟它的方法。我的测试代码的相关部分如下:
MyResult response = target(URL).
request().
post(Entity.json(input), MyResult.class);
在服务调用中添加@Context HTTPServletRequest之前,此方法工作正常。关于我所缺少的内容有什么疑问吗?