目的
フロントエンドにおいて何をどこまでテストすべきか考察する。
何のためにテストするのか?
テストコード:記述したテストケースが間違いなく動作することを保証するもの
テストケースが表現するもの:プログラムが仕様通りに動作するかどうか(正当性)。
テストの文脈で正当性は一般的にプログラミングの品質を意味し、品質向上がテストの目的となる。
どこまでテストするべきか?
仕様といってもソフトウェア開発では様々な粒度の仕様があるので、どのスコープの仕様に対するテストをするかを決めておかないとテスト設計が出来ない。
例)ユニットテスト(コンポーネントやクラスといった部品単位)、UIテスト(画面内のユースケース)
直近の開発では、自作のutil関数のみテストを書いていた。
CompoenntはメジャーなOSSライブラリを使っていたため動作が保証されていると信じた。
UIテストはTDDで頑張っても時間がかかって労力に見合わないと判断した。
フロントエンドにおけるテスト優先順位
個人情報に関わるコンポーネントはテストの優先度は高い(最優先)。
追加/更新/削除に関わるFormのテストはDBに関わるので優先度が高い。
工数と見返りを考慮して表示系のコンポーネント/Utilのテストを行う。