Jersey客户端将数据发送到String

时间:2013-11-20 11:15:13

标签: 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测试检查已发送的内容?

1 个答案:

答案 0 :(得分:0)

据我了解,您想要检查客户端将作为请求发送到服务器的确切内容,我是对的吗? 如果是,您的单元测试究竟是什么样的?

例如,Jersey提供了JerseyTest类,它是测试客户端代码的基础。

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

如果您只想获得客户端真正发送到服务器的内容,您可以编写泽西客户端过滤器并从那里获取请求体。 Filters and Interceptors