「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > カスタム コマンドを使用して Cypress テストを強化する

カスタム コマンドを使用して Cypress テストを強化する

2024 年 8 月 1 日に公開
ブラウズ:733

Supercharging Your Cypress Tests with Custom Commands

導入

Cypress は、エンドツーエンドのテストのための強力なツールであり、Web アプリケーションと対話するための堅牢な組み込みコマンドのセットを提供します。ただし、すべてのプロジェクトには固有のニーズがあり、デフォルトのコマンド セットでは完全にはカバーできない可能性があります。ここでカスタム コマンドが登場します。カスタム コマンドを使用すると、Cypress の機能を拡張でき、テストがより読みやすく、保守しやすくなります。この投稿では、Cypress でカスタム コマンドを作成および使用して、テスト自動化フレームワークを強化する方法を検討します。

カスタム コマンドを使用する理由

カスタム コマンドにはいくつかの利点があります:

  1. 再利用性: 複数のテストで繰り返される一般的なアクションをカプセル化します。
  2. 保守性: 複雑なアクションのロジックを一元化するため、変更は 1 か所だけで済みます。
  3. 可読性: 実装の詳細を抽象化することで、テストの可読性を向上させます。

サイプレスのセットアップ

カスタム コマンドの作成に入る前に、Cypress をまだセットアップしていない場合はセットアップしましょう:

npm install cypress --save-dev

インストール後、Cypress を開きます:

npx cypress open

カスタムコマンドの作成

Cypress カスタム コマンドは、cypress/support/commands.js ファイルで定義されています。いくつかの例を見て、カスタム コマンドを作成して使用する方法を見てみましょう。

例 1: ログインコマンド
頻繁に操作する必要があるログイン フォームがあるとします。ログイン プロセスを処理するカスタム コマンドを作成できます:

// cypress/support/commands.js
Cypress.Commands.add('login', (email, password) => {
  cy.visit('/login');
  cy.get('input[name=email]').type(email);
  cy.get('input[name=password]').type(password);
  cy.get('button[type=submit]').click();
});

これで、テストでログイン コマンドを使用できるようになります:

// cypress/integration/login.spec.js
describe('Login Tests', () => {
  it('Should login with valid credentials', () => {
    cy.login('[email protected]', 'password123');
    cy.url().should('include', '/dashboard');
  });
});

例 2: アサーションを含むカスタム コマンド
カスタム アサーションをコマンドに追加することもできます。要素が表示されているかどうか、および特定のテキストが含まれているかどうかを確認するコマンドを作成しましょう:

// cypress/support/commands.js
Cypress.Commands.add('shouldBeVisibleWithText', (selector, text) => {
  cy.get(selector).should('be.visible').and('contain.text', text);
});

テストでの使用法:

// cypress/integration/visibility.spec.js
describe('Visibility Tests', () => {
  it('Should display welcome message', () => {
    cy.visit('/home');
    cy.shouldBeVisibleWithText('.welcome-message', 'Welcome to the Dashboard');
  });
});

カスタム コマンドのベスト プラクティス

  1. コマンドに明確な名前を付ける: テストをより理解しやすくするために、カスタム コマンドにわかりやすい名前を使用します。
  2. コマンドのパラメータ化: パラメータを受け入れてコマンドを柔軟かつ再利用可能にします。
  3. チェーン コマンド: チェーンを有効にするためにコマンドが Cypress チェーン可能 (cy.wrap()) を返すようにします。
  4. ドキュメント コマンド: 各カスタム コマンドの目的と使用法を説明するコメントを追加します。

高度なヒント

  1. TypeScript のサポート: TypeScript を使用している場合は、カスタム コマンドの型定義を追加して、オートコンプリートと型チェックを強化できます。
  2. エラー処理: カスタム コマンド内にエラー処理を実装して、何か問題が発生したときに有益なフィードバックを提供します。
  3. 再利用可能な関数: 複雑なロジックの場合、カスタム コマンド内で使用できるヘルパー関数を作成して、commands.js ファイルをクリーンで焦点を絞った状態に保ちます。

結論

Cypress のカスタム コマンドは、フレームワークの機能を拡張する強力な方法を提供し、テストをより再利用しやすく、保守しやすく、読みやすくします。一般的なアクションをカプセル化し、カスタム アサーションを追加することで、テスト自動化プロセスを合理化し、アプリケーションが完璧に動作することを保証するという最も重要なことに集中できます。

今すぐ Cypress プロジェクトにカスタム コマンドを実装して、テスト ワークフローにカスタム コマンドがもたらす違いを確認してください。テストを楽しんでください!

リリースステートメント この記事は次の場所に転載されています: https://dev.to/aswani25/supercharging-your-cypress-tests-with-custom-commands-4jlc?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3