测试Jersey客户端包装器

时间:2013-11-09 15:31:09

标签: java unit-testing jersey jersey-client

我正在尝试为使用Jersey客户端发出请求的API客户端编写测试。

我想伪造某个服务器响应以返回预先捕获的json字符串。

EG。

client().resource("/recommendations").queryParam("username", karan").get(Recommendation.class)

应该根据我存储在文件中的json字符串返回相应的类。

我怎么能假装?或者我是否必须实例化一个假的服务器以返回实际的json,并让jersey客户端做它的工作?

由于

1 个答案:

答案 0 :(得分:1)

一种流行的解决方案是使用像EasyMockMockito这样的测试框架来创建一个模拟Jersey客户端,该客户端需要特定的方法调用并返回预定义的数据(例如json)。然后将模拟注入API客户端,代替真正的Jersey客户端。

通常,您也可以通过自己创建模拟来避免框架,即子类化客户端和覆盖您希望调用的方法,以返回预定义数据。然后将您的模拟作为构造函数参数传递给API客户端。您是否证明框架的合理性取决于您期望需要多少模拟,这部分取决于您拥有多少外部依赖项。