2

我在使用nock 模拟动态 url 时遇到问题

我想模拟的网址:
http ://example.api.com/svc/Utility.svc/json/GetAPICallRefresh_Module?from=2017-11-25T12:20:50.404Z&module=tennis&languageCode=2

问题是from作为 ISO 时间戳的参数,并且每个 API 调用都会发生变化。

模拟请求:

nock('http://example.api.com')
    .persist()
    .filteringPath(/from=[^&]*/g, 'module=tennis', 'languageCode=2')
    .get('/svc/Utility.svc/json/GetAPICallRefresh_Module?module=tennis&languageCode=2')
    .reply(200, () => {
        return 'Mock response!'
    });

不工作:Error: Nock: No match for request 你能帮忙吗?

4

1 回答 1

2

get应该只包含你的路径,但是你有你的查询字符串。

可以使用该query函数匹配查询字符串。

试试这个:

nock('http://example.api.com')
  .get('/svc/Utility.svc/json/GetAPICallRefresh_Module')
  .query({ module: 'tennis', languageCode: '2' })
  .reply(200, { return 'Mock response!' });
于 2017-11-25T12:35:56.793 回答