38. 实现`jest.spyOn()`

JavaScript

容易  -通过 / -执行

如果你写过单元测试的话,一定很熟悉Spy的用法。

请自己实现一个spyOn(object, methodName) ,类似于 jest.spyOn()

以下是spyOn需要完成的内容。

  1. spy被调用的时候,原来的method也需要被调用。
  2. spy需要又一个calls数组,数组中含有所有调用的参数

以下代码说明了一切。

const obj = {   data: 1,    increment(num) {      this.data += num   }}const spy = spyOn(obj, 'increment')obj.increment(1)console.log(obj.data) // 2obj.increment(2)console.log(obj.data) // 4console.log(spy.calls)

始终思考更好的解决办法