Sinon.js:间谍空回调

时间:2016-02-16 18:23:51

标签: javascript sinon sinon-chai

我试图用sinon.js测试回调函数

handleLoginActions = function (callback) {
    ...
    if (callback) {
        callback()
    }
    ..
}

var loginCallbackStub = stub();
handleLoginActions(loginCallbackStub);
expect(loginCallbackStub).to.have.been.calledOnce; //works great

但问题是当我需要使用无效的回调函数测试场景时,我得到了这个错误: null不是间谍或对间谍的调用! (以及我的逻辑)

var loginCallbackStub = null;
handleLoginActions(loginCallbackStub);
expect(loginCallbackStub).to.not.have.been.called;

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:0)

调用非函数的东西会引发错误,所以你应该测试它不会抛出错误:

expect(handleLoginActions()).to.not.throw(Error)