使用npm-nock创建动态模拟请求

时间:2017-11-25 12:27:21

标签: node.js nock

我在使用nock

模拟动态网址时出现问题

网址我想嘲笑:
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 你能帮忙吗?

1 个答案:

答案 0 :(得分:1)

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

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

试试这个:

nock('http://example.api.com')
  .get('/svc/Utility.svc/json/GetAPICallRefresh_Module')
  .query({ module: 'tennis', languageCode: '2' })
  .reply(200, { return 'Mock response!' });