to.have.been.calledWith不是chai#3.5.0

时间:2017-05-16 08:11:58

标签: javascript unit-testing chai

我已经更新了项目中的chai版本,并在将其更新为3.5.0后,某些测试失败了。我发现我无法测试我做间谍的函数的参数。

我创建了一个小提琴,用于在此处使用示例方法重现我的问题 - 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中测试参数?

2 个答案:

答案 0 :(得分:6)

当您使用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

答案 1 :(得分:0)

也许你忘了加入sinon-chai.js? 这是工作小提琴enter image description here 我只添加了sinon-chai.js并将你的最后一行改为expect(spy).to.have.been.calledWith(5);