所以我有这样的Chai / Mocha / Sinon测试:
import sinon from 'sinon'
describe(`My Test`, () => {
it(`should track the number of calls`, () => {
function testMe() {
console.log(`test me`)
}
const spy = sinon.spy(testMe)
testMe()
console.log(spy.getCalls())
console.log(spy.callCount)
})
})
测试运行时,会记录以下内容:
test me
[]
0
这令人费解。我做错了什么?
答案 0 :(得分:4)
如果您想要常规功能的间谍,您可以通过调用间谍来跟踪对该功能的调用的唯一方法:
it(`should track the number of calls`, () => {
function testMe() {
console.log(`test me`)
}
const spy = sinon.spy(testMe)
spy()
console.log(spy.getCalls())
console.log(spy.callCount)
})
如果testMe
是对象(或类的方法)的属性,则可以调用原始属性,因为在这种情况下,Sinon可以用窥探版本替换原始属性。例如:
describe(`My Test`, () => {
it(`should track the number of calls`, () => {
const obj = {
testMe() {
console.log(`test me`)
}
};
const spy = sinon.spy(obj, 'testMe')
obj.testMe();
console.log(spy.callCount)
})
})