🧪
E2Eテストについて
概要
E2E テストについての個人的なまとめです。
E2E テストとは
E2E(End To End)テストはシステム全体を通して行うテストです。UI テストとも呼ばれます。
E2E テストは以下のような特徴を持ちます。
- システムの挙動を全体を通して確認することができる。
- 壊れやすいため、メンテナンスコストがかかる。
- テスト選定や実行環境を用意する必要があるため、導入コストがかかる。
- 実行速度が遅い。
Tips
ロケータを使用し、要素を取得する
ロケータは操作や検証の対象となる要素を指定するためものです。
以下の要素が必要になります。
- 常に一意である。
- 変更される可能性が少ない。
- 意味や振る舞いが変わらないものである。
data-*
属性を使用する
data-*
属性は開発者が独自の属性をタグ内に準備するためのカスタムデータ属性です。data-foo
といったように定義します。
カスタム定義であるため、故意に変えない限りは影響がないです。
ただ、data-*
属性をプロダクトコード側で管理しておく必要があります。
id 属性や class 属性をロケータとして使用しない
JavaScript フレームワークを使用すると、id
属性に特定のプレフィックスがついたりと、id
属性がフレームワークに管理された状態になるため、あるため使用しないほうがよいです。
class
属性に関してはページ内で複数回使用される可能性があり、変更される可能性が高くなるため、class
属性に関しても使用しないほうがよいです。
テストケースはすべてを網羅せず、最小限にする
UI に関する一連の流れをスクリプト化したり、実行速度が遅かったり、作成・メンテナンスや実行時間にコストが掛かるため、テストケースは最小限に抑える必要があります。
ユニットテストに比べ、E2E テストが多くなると一般的にアンチパターンになるみたいです。
参考文献
Discussion