「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Cucumber.js: 動作駆動テストの完全ガイド

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

2024 年 11 月 9 日に公開
ブラウズ:769

Cucumber.js: A Complete Guide to Behavior-Driven Testing
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 プロジェクトで設定する方法は次のとおりです:

  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キュウリ-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 テストの保守性とスケーラビリティを確保するには、テストを作成するときに特定のベスト プラクティスに従うことが重要です。

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

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

Copyright© 2022 湘ICP备2022001581号-3