【问题标题】:Sinon stub chained methodsSinon 存根链式方法
【发布时间】:2016-01-02 05:30:57
【问题描述】:

我的 SailsJs 控制器中有以下代码:

Jobs.create('beginImport', {
    version: version
}).save(function(err){
    if(err) {
        return res.serverError(err);
    }
    res.ok({ info: "import started" });
});

在我的测试中,我试图像这样存根Jobs

var save = { save: sinon.stub() };
sinon.stub(Jobs, "create").returns(save);

但是我的测试在 2000 毫秒后超时并且失败了。

如何存根这些方法以使测试通过?

【问题讨论】:

    标签: node.js mocha.js sinon kue


    【解决方案1】:

    您的存根应使用stub.callsArg(index); 或相关函数调用传递给它的函数。

    var save = { save: sinon.stub() };
    

    应该变成

    var save = { save: sinon.stub().callsArg(0) };
    

    如果你不需要传入任何参数,或者

    var save = { save: sinon.stub().callsArgWith(0, new Error('error')) };
    

    如果你需要测试错误。

    【讨论】:

    • 很高兴,如果您知道如何使用 sinon,它是一个很棒的工具。
    猜你喜欢
    • 1970-01-01
    • 2016-04-07
    • 2015-04-18
    • 1970-01-01
    • 2021-06-10
    • 2021-06-27
    • 2018-05-31
    • 1970-01-01
    • 2015-11-28
    相关资源
    最近更新 更多