使用 npm-nock 创建动态模拟请求
Creating dynamic mock request using npm-nock
我在使用 nock
模拟动态 url 时遇到问题
问题出在 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!' });
我在使用 nock
模拟动态 url 时遇到问题问题出在 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!' });