Cucumber.js は、平易な言語で記述された自動テストを実行するための人気のあるツールであり、開発者と開発者以外が共同でテストを行うことができます。これは、関係者間の明確なコミュニケーションが鍵となる行動駆動開発 (BDD) で特に役立ちます。人間が読める言語を使用することで、Cucumber js を使用すると、製品所有者、テスター、開発者は、ソフトウェアが期待どおりに動作することを確認しながら、アプリケーションの全体的な品質を向上させることができます。
動作駆動開発 (BDD) を理解する
Cucumber.js は、技術的関係者と非技術的関係者間のコミュニケーションを促進するソフトウェア開発アプローチである動作駆動開発 (BDD) の原則に基づいて構築されています。 BDD では、テストは共有言語で記述されるため、チーム メンバー全員が要件の理解に貢献できます。 BDD は、技術的な詳細ではなく動作に焦点を当てることで、ビジネス アナリストから開発者に至るまで、ソフトウェアがどのように機能するべきかについて誰もが同じ理解を確実に持つようにします。
BDD は通常、「与えられた、いつ、その後」の形式に従ってシナリオを記述します。
• Given: 初期コンテキストを定義します (例: 「ユーザーがログインしていると仮定」)。
• いつ: アクションまたはイベントを説明します (例: 「ユーザーが送信ボタンをクリックしたとき」)。
• その後: 期待される結果を指定します (例: 「その後、フォームが送信されます」)。
Cucumber.js はこの形式を使用して自然言語テストを有効にします。
Cucumber.js のインストールとセットアップ
Cucumber.js を使い始めるには、必要な npm パッケージをインストールし、プロジェクトを構成する必要があります。 Cucumber.js は Node.js パッケージとして入手でき、npm 経由で簡単にインストールできます。 Node.js プロジェクトで設定する方法は次のとおりです:
シナリオ: 有効な認証情報によるログイン成功
ユーザーがログイン ページにいるとすると
ユーザーが有効な資格情報を入力したとき
その後、ユーザーはダッシュボードにリダイレクトされます
各シナリオは、ソフトウェアがサポートする必要がある特定の使用例を表します。目標は、技術チーム メンバーと非技術チーム メンバーの両方が簡単に理解できる方法でこれらのテストを作成することです。
Cucumber.js のステップ定義
ステップ定義では、機能ファイルの自然言語ステップが実行可能な JavaScript コードにマップされます。各ステップ (例: 「ユーザーがログイン ページにいる場合」) は、ステップ定義ファイル内のメソッドに対応します。
以下は、ログイン機能のステップを定義する方法の例です:
const {与えられた、いつ、その後 } = require('@cucumber/cucumber');
Given('ユーザーはログイン ページにいる', function () {
// ログインページに移動するコード
});
When('ユーザーが有効な資格情報を入力', function () {
// 有効なユーザー名とパスワードを入力するコード
});
Then('ユーザーはダッシュボードにリダイレクトされます', function () {
// ダッシュボードへのリダイレクトを確認するコード
});
Given、When、Then 関数は Cucumber.js パッケージから取得され、それぞれがシナリオのステップを、必要なロジックを実装する JavaScript 関数にマップします。
Cucumber.js テストの実行
機能ファイルとステップ定義の準備ができたら、Cucumber.js を実行してテストを実行し、結果を確認できます。ターミナルで次のコマンドを実行するだけです:
npxキュウリ-js
Cucumber.js は機能ファイルを解析し、ステップを対応するステップ定義と照合し、テストを実行します。出力にはどのシナリオが成功したか失敗したかが表示されるため、アプリケーションの動作を明確に把握できます。
Cucumber.js と他のテスト ツールの統合
Cucumber.js は、Mocha や Chai などの一般的なテスト フレームワークと統合して、テスト スイートの機能と構造を強化できます。 Cucumber.js をこれらのフレームワークと組み合わせることで、強力なアサーション ライブラリとテスト機能を使用して、テストの深さを向上させることができます。
たとえば、ステップ定義のアサーションに Chai を使用できます:
const { 期待 } = require('chai');
Then('ユーザーはダッシュボードにリダイレクトされます', function () {
Expect(currentPage).to.equal('ダッシュボード');
});
他のツールを統合すると、基本的な BDD シナリオを超えて Cucumber.js を拡張でき、テスト戦略全体の柔軟な部分になります。
保守可能な BDD テストを作成するためのベスト プラクティス
Cucumber.js テストの保守性とスケーラビリティを確保するには、テストを作成するときに特定のベスト プラクティスに従うことが重要です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3