38. `jest.spyOn()`を実装する

JavaScript

簡単  - accepted / - tried

ユニットテストを書いたことある方なら、Spyについては詳しいでしょう。

jest.spyOn()のように、spyOn(object, methodName)を実装してください。

下記の仕様を満たしてほしい

  1. spyが呼ばれるときに、元のメソッドも呼ばれる
  2. spyにcalls配列あり、実行されるたびに引数が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)

常にもっといい方法を求めよう。