存根使用WireMock调用第三方服务

时间:2017-07-21 10:02:51

标签: integration-testing stub stubbing wiremock

我试图找到一种通过WireMock存根调用外部服务的方法。 WireMock可以轻松模拟任何相对URL,但如果我们想要拦截从我们的节点发送到某个第三方服务并返回预定义响应的REST调用,该怎么办?有没有可能这样做?

2 个答案:

答案 0 :(得分:2)

是的,请查看文档中的代理部分:http://wiremock.org/docs/proxying

答案 1 :(得分:0)

我通过提取主机作为应用程序配置来进行了解决。

因此,如果您的应用程序将请求发送到:

    Fragment sf = SearchFragment.newInstance();
    Bundle args = new Bundle();
    args.putString(Intent.ACTION_SEARCH, query);
    sf.setArguments(args);

    getFragmentManager().beginTransaction()
            .replace(R.id.fragmentContainer, sf).addToBackStack(null).commit();

您可以将主机提取为配置参数:

http://thired-party-service.com/someEndPoint

现在,在测试环境中运行时,请使用与WireMock服务器相同的主机填充主机参数,例如:

host=http://thired-party-service.com/

现在您可以照常使用WireMock存根了。