java - Jersey 客户端将数据发送到 String

标签 java json junit junit4

我正在使用 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/

相关文章:

java - 如何将 Serenity 与 Junit5 结合使用?

java - JUnit 测试 : Why is Maven (Surefire) so much slower than running on Eclipse?

java - 如何测试Hibernate JPA持久层?

java - 我的 try catch 没有显示警告消息

java - 使用返回数组中的元素

java - 示例 : Sending sendgrid email programmatically with Volley

java - 如何以嵌套的json格式返回DB数据?

json - Vue.js 中导入的 json 值不正确

java - 我怎样才能找出一个类定义了哪些枚举?

javascript - 从JSON响应中过滤ng-repeat