У меня есть сломанный модульный тест после попытки получить HttpServletRequest, который передается в качестве параметра в почтовом вызове веб-службы Джерси:
@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-адрес моей тестовой машины. Но в модульных тестах с гризли объект запроса всегда нулевой, и я до сих пор не нашел способ издеваться над ним. Соответствующая часть моего тестового кода выглядит так:
MyResult response = target(URL).
request().
post(Entity.json(input), MyResult.class);
Это работало нормально до добавления @Context HTTPServletRequest в вызов службы. Любые предложения о том, что мне не хватает?