Sinon存根链接方法

Sinon stub chained methods

我的 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 毫秒后超时并失败。

我怎样才能对这些方法进行存根以便测试通过?

您的存根应该使用 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')) };

如果您需要测试错误。