ホームページ >ウェブフロントエンド >CSSチュートリアル >サイプレスを使用したVueコンポーネントのテスト
ブラウザベースのアプリケーション用の堅牢な自動テストランナーであるCypressは、コンポーネントテストをサポートするようになりました。この記事では、サイプレスコンポーネントのテストを大規模なVUEアプリケーションに統合し、ベストプラクティスを強調し、一般的な課題に対処することを検討します。私たちのチームは、以前はJestおよびVueテストのUtilsを使用していましたが、ブラウザベースのテスト環境と既存のエンドツーエンドテストとのシームレスな統合のためにサイプレスに移行しました。
注:この記事は、サイプレス8の機能を反映しています。将来の更新の潜在的な変更を期待してください。
タイトル、ボディ、および確認ボタンを備えた「プライバシーポリシー」コンポーネントを検討してください。ボタンをクリックすると、「確認」イベントが発生します。サイプレスコンポーネントテストは次のようになる場合があります:
'@cypress/vue'から{mount}をインポートします。 './privacypolicynotice.vue'からprivacypolicynoticeをインポートします。 説明( 'privacypolicynotice'、()=> { それ( 'タイトルをレンダリングする'、()=> { マウント(privacypolicynotice); cy.contains( 'h1'、 'プライバシーポリシー')。 }); それ( 'ボタンクリックで「確認」イベントを発します'、()=> { マウント(privacypolicynotice); cy.contains( 'button'、 '/^ok/') 。クリック() .vue() .then((wrapper)=> { expect(wrapper.emitted( 'cunsile'))。to.have.length(1); }); }); });
このテストは、ユーザーインターフェイス(UI)要素と開発者インターフェイス(API)イベントの両方を検証し、コンポーネントの構造とアクセシビリティを暗黙的にテストします。たとえば、ボタンをDivのボタンを交換すると、すぐにアクセシビリティの問題が強調されます。
私たちのテスト戦略は、次のことを区別します。
特に、コンポーネントテストは、予想されるイベント(開発者契約)およびUI状態反射(ユーザー契約)の確認に焦点を当てています。また、貴重なコンポーネントドキュメントとしても機能します。
JestおよびVueテストのUTILは一般的にコンポーネントテストに使用されますが、サイプレスは実際のブラウザ環境内でテストを実行することで利点を提供します。これにより、視覚的なフィードバック、デバッグ機能、リアルなブラウザAPIインタラクションが提供されます。 Cypressは、コンポーネントの取り付けとフレームワーク固有のアサーションのためのVUEテストの利用をレバレッジします。
Vuetifyを使用した大型VUE 2アプリケーションは、いくつかの課題を提示しました。
__cy_root
)に追加することが含まれます。!(node_modules)**/*.spec.js
)は、 cypress.json
で使用され、無関係なファイルを除くコンポーネントと一緒にテストファイルを見つけました。cy.vue()
)は、VueテストUtilsラッパーへのアクセスをアサーション用に簡素化します。当初、軽度のしゃっくり(例えば、断続的なリナーエラー)に遭遇している間、利点は課題を上回ります。異なるレベルで一貫したテストアプローチと、視覚的にコンポーネントを単独で開発およびテストする能力は、大きな利点です。初期テストのためにシンプルで依存しないコンポーネントを選択することをお勧めします。
サイプレスコンポーネントテストは、既存のエンドツーエンドテストを補完する堅牢でユーザーフレンドリーなアプローチを提供します。複数のツール(VUEテストUTIL、サイプレス、モカ、チャイなど)に精通している間、サイプレスの統合された性質により、全体的なテストプロセスが簡素化されます。改善されたテストの読みやすさと私たちのチーム内のテストカバレッジの増加は、その有効性を強調しています。
以上がサイプレスを使用したVueコンポーネントのテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。