テスト初心者すぎる
テスト初心者すぎて悲しくなったので覚えるためにメモ。
beforeAllとbeforeEach
beforeAllとbeforeEachの違いで詰まったりしてた。
boforeAllとafterAllはファイルの最初と最後にそれぞれ 1 回ずつ実行される。
と思ったけど、describeの中で定義すれば「そのdescribeブロックの中で 1 回」実行するらしい。
beforeEachとafterEachは、testの各ブロック(の前後)で実行される。
describeの中でbeforeEachとafterEachを定義した場合はそのdescribeブロックの中のtestだけに適用される。
mockClear
Jest mockClear(), mockReset(), mockRestore() の違い - Qiita
mockClear()はmockFn.mock.callsとmockFn.mock.instancesを初期化するだけ。
mockReset()は上記に加えてmockImplementationやmockReturnValueに設定した実装や戻り値をすべてリセットする
mockRestore()は、jest.spyOnで作ったモックを戻す。つまりモックを破棄して、オリジナルの関数を呼ぶようになる。
まとめ
ここらへんすら曖昧だったとは、自分に失望してしまった。もうちょっとテストについて勉強してたくさん書くようにしよう。