【问题标题】:Sinon stub of dns lookup doesn't get to a callback for lookupdns 查找的 Sinon 存根无法进行查找回调
【发布时间】:2021-11-17 07:13:18
【问题描述】:

我在Nodejs中使用dns.lookup方法来获取域的IP地址。

该代码如下所示:

module.exports = async function collectDns() {
    lookup('google.com', { all: true, family: 4 }, (err, addresses) => {
        console.log(err);
        console.log(addresses);
    });
};

我正在使用 Mocha 和 Sinon 为存根编写单元测试。这就是我的代码的样子:

beforeEach('stub deps', () => {
        lookupFake = {
            address: '127.0.0.1',
            family: 4,
        };
        revert = collectDns.__set__({
            'lookup': stub().resolves(lookupFake),
        });
});
it('run DNS lookup', async () => {
    const collectDns = rewire('../collectdns');
    collectDns();
});

我遇到的是在进行查找调用后它永远不会得到回调。有人可以建议,我做错了什么?

【问题讨论】:

    标签: node.js mocha.js sinon


    【解决方案1】:

    我发现 sinon 中有一个 [yields][1] 方法完全符合我的预期 - 调用回调。

    所以,我调整了这个:

    revert = collectDns.__set__({
        'lookup': stub().yields(lookupFake),
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2016-02-18
      • 1970-01-01
      • 2012-02-14
      • 1970-01-01
      相关资源
      最近更新 更多