我正在使用 Jersey 为 REST 客户端构建一些 JUnit 测试,因此我需要将数据的副本发送到服务器以在 JUnit 中运行一些测试。
目前我的客户调用:
Invocation invocation = serviceWebTarget.request(MediaType.APPLICATION_JSON).
buildPut(Entity.json((QARecord) valuesList.get(0)));
Response response = invocation.invoke();
在两次调用之间,QARecord 对象被序列化为 JSON 并发送到服务器,但我找不到访问它的方法。 通过调试代码,我发现调用或响应中没有包含转换后的 JSON 文本的变量。
如何将发送的数据放入字符串或文件中,以便我的 JUnit 测试检查已发送的内容?
最佳答案
据我了解,您想检查客户端到底将作为请求发送到服务器的内容,对吗? 如果是,您的单元测试到底是什么样子?
例如 Jersey 提供 JerseyTest类是测试客户端代码的基础。
简而言之,此类测试将运行特殊的测试容器,该容器能够在内部执行您的处理程序。 通过将其与 Mockito 结合/或自己创建自己的处理程序,您可以在测试结束时(当客户端收到响应时)验证它们作为客户端请求“捕获”的内容。除此之外,它使您不仅可以检查客户端代码发送到服务器的内容,还可以通过模拟各种响应(成功或异常)来检查客户端的行为。
如果您只想获取客户端真正发送到服务器的内容,您可以编写 jersey 客户端过滤器并从那里获取请求正文。 Filters and Interceptors
关于java - Jersey 客户端将数据发送到 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20094401/