ホームページ  >  記事  >  ウェブフロントエンド  >  Cucumber.js: 動作駆動テストの完全ガイド

Cucumber.js: 動作駆動テストの完全ガイド

DDD
DDDオリジナル
2024-09-12 20:17:28784ブラウズ

Cucumber.js: A Complete Guide to Behavior-Driven Testing
Cucumber.js は、平易な言語で記述された自動テストを実行するための人気のあるツールであり、開発者と開発者以外が共同でテストを行うことができます。これは、関係者間の明確なコミュニケーションが鍵となる行動駆動開発 (BDD) で特に役立ちます。人間が読める言語を使用することで、Cucumber js を使用すると、製品所有者、テスター、開発者は、アプリケーションの全体的な品質を向上させながら、ソフトウェアが期待どおりに動作することを確認できます。
動作駆動開発 (BDD) を理解する
Cucumber.js は、技術的関係者と非技術的関係者間のコミュニケーションを促進するソフトウェア開発アプローチである動作駆動開発 (BDD) の原則に基づいて構築されています。 BDD では、テストは共有言語で記述されるため、チーム メンバー全員が要件の理解に貢献できます。 BDD は、技術的な詳細ではなく動作に焦点を当てることで、ビジネス アナリストから開発者に至るまで、ソフトウェアがどのように機能すべきかについて全員が同じ理解を確実に持つようにします。
BDD は通常、「Given、When、Then」形式に従ってシナリオを記述します。
• Given: 初期コンテキストを定義します (例: 「ユーザーがログインしていると仮定」)。
• いつ: アクションまたはイベントを説明します (例: 「ユーザーが送信ボタンをクリックしたとき」)。
• その後: 期待される結果を指定します (例: 「その後、フォームが送信されます」)。
Cucumber.js はこの形式を使用して自然言語テストを有効にします。
Cucumber.js のインストールとセットアップ
Cucumber.js を使い始めるには、必要な npm パッケージをインストールし、プロジェクトを構成する必要があります。 Cucumber.js は Node.js パッケージとして入手でき、npm 経由で簡単にインストールできます。 Node.js プロジェクトで設定する方法は次のとおりです:

  1. Cucumber.js をインストールします。 バッシュ コードをコピーする npm install --save-dev @cucumber/cucumber
  2. プロジェクトを構成する: 機能ファイルとステップ定義用のフォルダー構造を作成します。例えば: パール コードをコピーする §── 特徴 │ §── ステップ定義 │ └── my-feature.feature インストール後、最初の機能ファイルを作成し、対応するステップ定義を作成する準備が整います。 最初の機能ファイルを作成する Cucumber.js の重要な要素は機能ファイルで、テストは Gherkin 構文を使用して平易な英語で記述されます。機能ファイルは、ユーザーの観点から書かれたシナリオにおけるアプリケーションの動作を記述します。ログイン機能をテストする単純な機能ファイルの例を次に示します。 機能: ログイン機能

シナリオ: 有効な資格情報によるログインの成功
ユーザーがログイン ページにいることを前提とします
ユーザーが有効な認証情報を入力したとき
その後、ユーザーはダッシュボードにリダイレクトされます
各シナリオは、ソフトウェアがサポートする必要がある特定の使用例を表します。目標は、技術チームのメンバーと非技術チームのメンバーの両方が簡単に理解できる方法でこれらのテストを作成することです。
Cucumber.js
のステップ定義 ステップ定義では、機能ファイルの自然言語ステップが実行可能な JavaScript コードにマップされます。各ステップ (例: 「ユーザーがログイン ページにいる場合」) は、ステップ定義ファイル内のメソッドに対応します。
以下は、ログイン機能のステップを定義する方法の例です:
const { 与えられた、いつ、その後 } = require('@cucumber/cucumber');

Given('ユーザーはログイン ページにいる', function () {
// ログイン ページに移動するコード
});

When('ユーザーが有効な認証情報を入力した', function () {
// 有効なユーザー名とパスワードを入力するコード
});

Then('ユーザーはダッシュボードにリダイレクトされます', function () {
// ダッシュボードへのリダイレクトを確認するコード
});
Given、When、Then 関数は Cucumber.js パッケージから来ており、それぞれがシナリオのステップを、必要なロジックを実装する JavaScript 関数にマップします。
Cucumber.js テストの実行
機能ファイルとステップ定義の準備ができたら、Cucumber.js を実行してテストを実行し、結果を確認できます。ターミナルで次のコマンドを実行するだけです:
npx cucumber-js
Cucumber.js は機能ファイルを解析し、ステップを対応するステップ定義と照合し、テストを実行します。出力にはどのシナリオが成功したか失敗したかが表示されるため、アプリケーションの動作を明確に把握できます。
Cucumber.js と他のテスト ツールの統合
Cucumber.js は、Mocha や Chai などの一般的なテスト フレームワークと統合して、テスト スイートの機能と構造を強化できます。 Cucumber.js をこれらのフレームワークと組み合わせることで、強力なアサーション ライブラリとテスト機能を使用して、テストの深さを向上させることができます。
たとえば、ステップ定義のアサーションに Chai を使用できます。
const {expect } = require('chai');

Then('ユーザーはダッシュボードにリダイレクトされます', function () {
Expect(currentPage).to.equal('ダッシュボード');
});
他のツールを統合すると、基本的な BDD シナリオを超えて Cucumber.js を拡張でき、テスト戦略全体の柔軟な部分になります。
保守可能な BDD テストを作成するためのベスト プラクティス
Cucumber.js テストの保守性とスケーラビリティを確保するには、テストを作成するときに特定のベスト プラクティスに従うことが重要です。

  1. 小規模で独立したシナリオを作成する: 各シナリオは特定の動作をテストする必要があり、他のシナリオに依存すべきではありません。これにより、テストの理解と保守が容易になります。
  2. 過度に複雑なステップ定義を避ける: ステップ定義は焦点を絞った簡潔なものにする必要があります。ステップに必要なロジックが多すぎる場合は、より小さなステップに分割するか、コードをリファクタリングすることを検討してください。
  3. シナリオ全体でステップを再利用する: 可能であれば、異なるシナリオ全体でステップ定義を再利用して、重複を減らし、一貫性を高めます。
  4. フィーチャー ファイルを理解しやすくする: 開発者と技術者以外のチーム メンバーの両方が簡単に理解できる方法でフィーチャー ファイルを作成します。明確で説明的なシナリオにより、チーム全体のコミュニケーションが向上します。 結論 Cucumber.js は、テストを作成するためのシンプルでわかりやすい形式を提供することで、開発者、テスター、関係者の間のギャップを埋める強力な方法を提供します。 BDD フレームワーク内で Cucumber.js を使用すると、テストがビジネス要件と密接に一致し、すべてのチーム メンバーがアプリケーションがどのように動作すべきかについて共通の理解を得ることができます。小さなコンポーネントをテストする場合でも、複雑なワークフローをテストする場合でも、Cucumber.js を使用すると、ソフトウェア プロジェクトの成功に貢献する、より明確で効果的なテストを作成できます。

以上がCucumber.js: 動作駆動テストの完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。