イントロダクション
Vue Testing Libraryは、DOM Testing Library
上に構築され、Vueコンポーネントを操作するためのAPIを追加しています。 Vueの公式テストライブラリである@vue/test-utils上に構築されています。
要するに、Vue Testing Libraryは3つのことを行います
DOM Testing Library
のクエリユーティリティとヘルパーを再エクスポートします。- Testing Libraryのガイドラインに抵触する
@vue/test-utils
のメソッドを非表示にします。 - 両方のソースからいくつかのメソッドを調整します。
クイックスタート
Vue2を使用する場合
- npm
- Yarn
npm install --save-dev @testing-library/vue@5
yarn add --dev @testing-library/vue@5
Vue3を使用する場合
- npm
- Yarn
npm install --save-dev @testing-library/vue
yarn add --dev @testing-library/vue
これで、DOM Testing Library
のすべてのgetBy
、getAllBy
、queryBy
、queryAllBy
コマンドを使用できます。 クエリの完全なリストはこちらをご覧ください。
DOM用のカスタムJestマッチャーを使用できるように、@testing-library/jest-dom
をインストールすることもできます。
問題
Vueコンポーネントの保守可能なテストを作成したいと考えています。この目標の一環として、**テストにコンポーネントの実装の詳細が含まれないようにしたい**と考えています。むしろ、テストが意図した通りの信頼性を与えることに集中したいと考えています。
このソリューション
Vue Testing Library
は、Vueコンポーネントをテストするための非常に軽量なソリューションです。より良いテストプラクティスを促進する方法で、@vue/test-utils
の上に軽量なユーティリティ関数を提供します。
その主要な指導原理は
そのため、レンダリングされたVueコンポーネントのインスタンスを扱うのではなく、**テストは実際のDOMノードを操作します**。
このライブラリが提供するユーティリティは、ユーザーと同じ方法でDOMをクエリすることを容易にします。ラベルテキストで要素を見つけたり、テキストからリンクやボタンを見つけたり、アプリケーションが**アクセシブル**であることをアサートしたりできます。
また、テキストコンテンツとラベルが意味をなさない、または実用的でない要素の「エスケープハッチ」として、data-testid
で要素を見つけるための推奨される方法も公開しています。