はじめに
問題点
Web UIの保守しやすいテストを作成したいと考えています。この目標の一環として、テストにコンポーネントの実装の詳細を含めず、テストが意図した通りの信頼性を提供することに焦点を当てたいと考えています。そのため、コンポーネントのリファクタリング(機能ではなく実装の変更)によってテストが壊れたり、チームの作業速度が低下したりしないよう、テストベースを長期的に保守できるようにしたいと考えています。
このソリューション
DOM Testing Library
は、DOMノード(Jestでデフォルトで提供されるJSDOM
でシミュレートされたもの、またはブラウザ内のもの)をテストするための非常に軽量なソリューションです。主なユーティリティは、ユーザーがページ上で要素を見つける方法と同様の方法で、DOM内のノードをクエリする機能を提供することです。このように、このライブラリは、テストがUIコードに対する信頼性を提供するのに役立ちます。DOM Testing Library
の主要な指導原則は次のとおりです。
この目標の一環として、このライブラリが提供するユーティリティは、ユーザーと同じ方法でDOMをクエリすることを容易にします。ユーザーと同じようにラベルテキストでフォーム要素を見つけたり、ユーザーと同じようにテキストからリンクやボタンを見つけたりすることができます。また、テキストコンテンツとラベルが意味をなさない場合や実用的でない場合の「エスケープハッチ」として、data-testid
で要素を見つけるための推奨される方法も公開しています。
このライブラリは、アプリケーションのアクセシビリティを向上させ、ユーザーが使用するのと同じ方法でコンポーネントを使用するテストに近づけることを促します。これにより、実際のユーザーがアプリケーションを使用した場合にアプリケーションが動作するという、より確かな自信をテストから得ることができます。
このライブラリではないもの:
- テストランナーまたはフレームワーク
- 特定のテストフレームワーク専用(Jestを推奨していますが、このライブラリはどのフレームワークでも動作します。Jestを使用しない場合を参照してください)