错误:Nock:请求不匹配

时间:2018-02-07 22:54:06

标签: node.js nock

我收到以下错误

{ 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"
     }
   }

网址是预期的,不知道什么是错的,任何指针?

3 个答案:

答案 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!');