Java Jersey客户端将数据发送到字符串

Java Jersey客户端将数据发送到字符串,java,json,junit,junit4,Java,Json,Junit,Junit4,我正在使用Jersey为REST客户机构建一些JUnit测试,因此需要将数据的副本发送到服务器,以便在JUnit中运行一些测试 当前我的客户端调用: Invocation invocation = serviceWebTarget.request(MediaType.APPLICATION_JSON). buildPut(Entity.json((QARecord) valuesList.get(0))); Response response =

我正在使用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提供了类,该类是测试客户机代码的基础

简单地说,这样的测试将运行特殊的testcontainer,它能够在内部执行您的处理程序。 通过将它与Mockito结合起来/或自己创建自己的处理程序,您可以在测试结束时(当客户端收到响应时)验证它们作为客户端请求“捕获”的内容。除此之外,它不仅可以让您检查客户端代码发送到服务器的内容,还可以通过模拟各种响应(成功或异常)来检查客户端的行为

如果您只想获取客户机真正发送到服务器的内容,您可以编写jersey客户机筛选器并从中获取请求主体。