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

Creating dynamic mock request using npm-nock

我在使用 nock

模拟动态 url 时遇到问题

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 你能帮忙吗?

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

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

试试这个:

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