我正在尝试模拟对此API网址的响应
http://api.myapihost.com/images?foo=bar&spam=egg
网址参数组合可能有所不同。我试图拦截这个请求并回复一个空对象。
nock('http://api.myapihost.com')
.persist()
.get('/images', '*')
.reply(200, {});
我的测试用例运行时收到此错误消息:
Uncaught Error: Nock: No match for HTTP request GET /images?height=2500
如何配置nock以匹配任何URL参数组合?
答案 0 :(得分:10)
使用nock,您可specify regular expressions。
这是一个例子(用v9.2.3测试):
nock('http://api.myapihost.com')
.get(/images.*$/)
.reply(200, {});
如果你想模拟整个url而不管传递的查询字符串是什么,使用.query(true)
还有一个更简单的语法:
nock('http://api.myapihost.com')
.get('/images')
.query(true)
.reply(200, {});
答案 1 :(得分:5)
您应该使用路径过滤来匹配网址参数。
var scope = nock('http://api.myapihost.com')
.filteringPath(function(path) {
return '/images';
})
.get('/images')
.reply(200, {});
您可以查看文档here