2013-11-09 79 views
0

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

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

例如,

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

应根据我已存储在文件中的json字符串返回适当的类。

我该如何伪造?或者我必须实例化一个假服务器才能返回实际的json,并让球衣客户端执行它的工作?

由于

回答

1

一种流行的解决方案是使用一个测试框架像EasyMockMockito以便创建一个模拟Jersey客户端,其预计特定方法调用和返回预定义的数据(例如JSON)。然后将该模拟注入API客户端以代替真实的Jersey客户端。一般来说,你也可以通过自己创建模拟来避免框架,即对客户端进行子类化,并重写你希望调用的方法,以返回预定义的数据。然后将您的模拟作为构造函数参数传递给API客户端。您是否证明框架的合理性取决于您期望需要多少嘲弄,这部分取决于您拥有多少外部依赖关系。