【问题标题】:Nock: No match for requestNock:不符合要求
【发布时间】:2018-05-15 05:08:43
【问题描述】:

我的 nock 调用如下所示

app_url='myshop.app.com'
result = nock(app_url, {
            reqheaders: {
                 "content-type": "application/json",
                 'authorization': 'Basic Auth'
            }
          })
        .get('/admin/products.json?collection_id=10001&limit=250&fields=id')    
        .reply(200, {
                "products": [
                { "id": 101},
                {"id": 102},
            ]
        });

解决:

(node:1378) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Nock: No match for request { .  

但是现在,

==========更新==============

我更新了我的调用,它没有抛出错误,但现在它没有拦截请求....它仍在点击 shopify 来获取数据

【问题讨论】:

  • 解决方案是什么?
  • 考虑添加一个解决方案,否则这是一个非常混乱的帖子。您是如何更新通话的?

标签: node.js mocha.js nock


【解决方案1】:

当没有找到与被击中的 URL 匹配的 nock 时会发生这种情况。 被点击的网址是

https://myshop.app.com/admin/products.json?collection_id=201&limit=10&fields=id

如错误消息中所示。 您所连接的 URL 与它不对应。

这样的事情应该可以工作。

app_url = "https://myshop.app.com/"
result = nock(app_url, {
        reqheaders: {
            "content-type": "application/json",
        }
    })
    .get('/admin/products.json?collection_id=201&limit=10&fields=id').
    .reply(200, {
        "products": [{
            "id": 101
        }, {
            "id": 102
        }, ]
    });

可以在Nock Documentation找到更多关于诺克的详细信息。

【讨论】:

  • @user269867 太糟糕了。刚刚注意到 products 数组中的尾随“,”,不确定这是否会产生问题。
  • @user269867 移除 , 运气好吗?
  • 不,我更改了一些配置而不是“,”
  • @user269867 您能否详细说明您为使其正常工作所做的配置更改?
  • 这不起作用,也没有关于您为使其起作用所做的更改的信息!!
【解决方案2】:

只需在范围内添加标志 { allowUnmocked: true }

nock('https://host.com', { allowUnmocked: true })
    .post(`/path`)
    .reply(200, {answer: "any"});

【讨论】:

  • 这是不对的,应该反过来。您不应允许未模拟的 URL。
【解决方案3】:

nocked URL 必须与 Node 将执行的 URL 完全相同,以避免“Nock: No match for request”错误。所以你需要做的就是:

nock('https://host.com')
 .log(console.log) // log the mocked URL so that you will know if they're 
                   // the same or not.
 .post(`/path`)
 .reply(200, {answer: "any"});

【讨论】:

    猜你喜欢
    • 2021-02-03
    • 2021-01-20
    • 1970-01-01
    • 2019-07-14
    • 2021-06-17
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2018-07-18
    相关资源
    最近更新 更多