我有我想窥视检查,该方法被调用的论据一类。
class Animal {
constructor() {
this.animals = [];
}
add(animal) {
this.animals.push(animal);
}
}
我的测试文件看起来像这样
const chai = require('chai');
const sinon = require('sinon');
const Lazy = require('../lazy');
it('should be able to add an animal', function () {
const animal = new Animal();
const add = sinon.spy(animal, 'add');
animal.add('cat')
expect(animal).to.have.been.called.with('cat');
});
间谍是行不通的。我想知道如何检查什么正在使用兴农叫。
animal
是对象,间谍实际上是add
,所以它应该是:
expect(add).to.have.been.called.with('cat');
帕特里克是正确的有关代码,你需要验证spy
不是对象,但你的代码也仍然没有改变运行。我做了一个functioning example on RunKit。看来你需要使用calledWith
为好,但你可能会使用一些其他的设置(这是丢失)。退房的代码:-)
因此,改变期望,
expect(add).to.have.been.calledWith('cat');