NISHIO Hirokazu[Translate]
Reactのテスト
>React コンポーネントは他の JavaScript のコードと同じようにテストできます。
>React コンポーネントのための一般的なテストのパターン集です。
React製のアプリをJestでテストする方法の良い解説
jest.spyOn doc
メソッドをモックに置き換える
実装が与えられなかった時、デフォルトで元の実装を使う
実装の与え方 jest.spyOn(object, methodName).mockImplementation(() => customImplementation)
元の実装を使うモックに何の意味があるか?
そのモックがどんな引数で呼ばれたか、どんな値を返したか、例外を投げたか、などが観察可能になる doc
「メソッド」と呼ばれてるが、クラスのメソッドには限らない、モジュールのトップレベル関数を書き換えるときはモジュールに名前をつけてインポートすれば良い
import * as fooModule from './foo';
setter / getter もスパイできる doc
jest.mock でモジュールを丸ごとモックに置き換えることもできる doc
イベントを投げるときはバブルが必要
タイマーを使う処理はタイマーをモックする
スナップショットテスト doc
スナップショットを取ってくれて、それと相違してるかチェックしてくれる
別ファイルに保存するものと、テストコード中に埋め込むものがある
DOMに限らない
意図的な変更によってスナップショットと一致しなくなったときは jest --updateSnapshot
例えば生成日時などのスナップショットごとに変化する値は、第一引数 propertyMatchers でフィルタする doc

mockFn.mockImplementationOnce doc
一回だけ実装を差し替える

ユーザが実際に使う状態に近いテストをする
→ユーザはDOMのラベルを見てボタンを押す
Enzymeの後継


>このドキュメントではあなたの環境に影響する要素や、いくつかのシナリオにおける推奨事項について概説します。




"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]