38. 实现`jest.spyOn()`
分享给更多人
容易 -通过 / -执行
如果你写过单元测试的话,一定很熟悉Spy
的用法。
请自己实现一个spyOn(object, methodName) ,类似于 jest.spyOn()。
以下是spyOn
需要完成的内容。
- spy被调用的时候,原来的method也需要被调用。
- spy需要又一个
calls
数组,数组中含有所有调用的参数
以下代码说明了一切。
const obj = {
data: 1,
increment(num) {
this.data += num
}
}
const spy = spyOn(obj, 'increment')
obj.increment(1)
console.log(obj.data) // 2
obj.increment(2)
console.log(obj.data) // 4
console.log(spy.calls)
// [ [1], [2] ]