我收到以下错误
{ error:
{ Error: Nock: No match for request {
"method": "GET",
"url": "http://localhost:3000/admin/orders/30075889/transactions.json",
"headers": {
"content-type": "application/json",
"host": "localhost:3000"
}
} Got instead {
"method": "GET",
"url": "http://localhost:3000/admin/orders/30075889/transactions.json",
"headers": {
"content-type": "application/json",
"host": "localhost:3000"
}
}
网址是预期的,不知道什么是错的,任何指针?
答案 0 :(得分:6)
使用.log(console.log)
查看确切的错误消息。
EX:
nock('https://test.org/sample')
.persist()
.log(console.log)
.get('/test')
.query({})
.reply(200, response);
使用它并运行测试时,您将在控制台中看到类似的内容
matching https://test.org/sample/test to GET https://test.org/sample/test with query({}): **true/false**.
如果说的是真的,那么您的要求应该很好。但是,如果显示为false,则检查两个请求并确保它们匹配。
答案 1 :(得分:3)
您可以随时显示准备好的诺克,这总是一个错字...;)
console.log(nock.activeMocks());
答案 2 :(得分:0)
Nock拦截器默认不会持续存在。对于每个请求,nock都需要一个拦截器。看起来你只设置一次拦截器并期望它适用于每个请求。如果你希望你的拦截器持续使用.persist()
选项,如下所示。
var scope = nock('http://localhost.com')
.persist()
.get(/.*/)
.reply(200, 'Nock all get requests!');