to.have.been.calledWith 不是 chai#3.5.0 中的函数错误

to.have.been.calledWith is not a function error in chai#3.5.0

我已经在我的项目中更新了 chai 的版本,在更新到 3.5.0 之后,一些测试失败了。我发现我无法测试我监视的函数的参数。

我创建了一个 fiddle 以在此处使用示例方法重现我的问题 - JSFiddle

describe('Mocha + Chai JsFiddle', function() {

  it('should test arg', function() {
    var spy = sinon.spy(test, 'testFun');

    test.testFun(5);

    expect(spy).to.have.been.called.with(5);
  });
});

谁能建议我们如何在新版本 chai.js 中测试参数?

由于您正在使用 Sinon,您可以使用 Sinon 间谍方法并使用 Chai 检查结果:

expect(spy.calledWith(5)).to.equal(true);

或者您可以使用 sinon-chai,这样您就可以:

expect(spy).to.have.been.calledWith(5);

See a JSFiddle of the first example

也许你忘了包含 sinon-chai.js? 这是工作 fiddle https://jsfiddle.net/zjet0432/1/ 我只添加了 sinon-chai.js 并将你的最后一行更改为 expect(spy).to.have.been.calledWith(5);