@takepepeさんがイベントで話されていた以下のスライドを読んだので、ざっくりまとめておく
書くべきだったテスト
- Router関連のテスト
<Link />
コンポーネントの遷移先- searchParamsの参照
※query.fooが?foo=bar&foo=baz
で["bar", "baz"](string[])
になる可能性があるよ
- 要件が複雑な機能のテスト
- コンポーネントの肥大化を防止するテスト
- セマンティクスの不備に気付けるテスト
- testing-libraryを使うと
getByRole
などのrole属性やaria属性をもとに要素を特定するので、セマンティクスの不備に気づくことができる(視覚的認知とスクリーンリーダーなどによる認知が同等であることも証明できる)
- testing-libraryを使うと
- キーボード操作の不備に気付けるテスト
- 要件定義にないものは実装観点から落ちやすい
- ビジュアルリグレッションテスト(VRT)
書かなくてよかったテスト
感想
Routerのテストは手動E2Eテストで確認しがちだが、遷移先URLがあっているかどうかなどは自動テスト化できるのでやっていきたい
Next.jsを使っている場合はnext-router-mockを使って確認ができる
コンポーネントのロジック抽出はどういう単位で切り出すのか、何かメンタルモデルが欲しいので深掘りしたい
UIのテストは準備するのに時間がかかるため、hygenを使って雛形を作ると良さそう