Gherkin のような構造化された形式でシステムの動作を定義することで、動作駆動開発 (BDD) を使用すると、チームは関係者、テスター、開発者の間の溝を埋めることができ、誤解を回避し、手戻りを減らすことができます。 BDD は、協力的なアプローチとして、最初からすべての関係者が協力して作業することを奨励し、全員が確実に参加できるようにします
同じページであり、要件が正確に把握されています。
このプロセスでは、Cucumber は BDD の実装に使用される一般的なツールであり、チームがシステムが期待どおりに動作することを確認する明確な実行可能なテストを作成できます。
このブログ投稿では、AskUI と連携して Cucumber をセットアップし、BDD 原則を使用して AskUI ワークフローを定義する方法を説明します。
AskUI がシステムにインストールされ、構成されています (Windows、Linux、macOS)
初期化後にaskui_example/my-first-askui-test-suite.test.tsを削除します
Cucumber は、AskUI のデフォルト設定ではまだ適切に動作しません (バージョン 0.20.3)。 AskUI がそのランナーとして Jest を使用するため、AskUI が Cucumber とうまく連携するには、2 つの小さな準備を行う必要があります。
ファイルaskui_example/helpers/jest.config.tsで、コードが実行レポートに含まれることを無効にする必要があります。これを実現するには、addCodeInReport プロパティを false に設定して testEnvironmentOptions プロパティを追加します。
const config: Config.InitialOptions = { ... testEnvironment: '@askui/jest-allure-circus', testEnvironmentOptions: { addCodeInReport: false }, }; ...
また、askui_example/helpers/jest.config.ts で、デフォルトの testMatch プロパティを展開する必要があります。実装をそこに保存するため、step.ts で終わるファイルを含める必要があります。
... const config: Config.InitialOptions = { ... testEnvironment: '@askui/jest-allure-circus', testEnvironmentOptions: { addCodeInReport: false }, testMatch: [ "**/__tests__/**/*.[jt]s?(x)", "**/?(*.) (spec|test|step).[jt]s?(x)" ] }; ...s?(x)", "**/?(*.) (spec|test|step).[jt]s?(x)" ] }; ...
Jest を Cucumber と一緒に使用する最も簡単な方法は、npm-package jest-cucumber です。次のコマンドでインストールしましょう:
npm install --save-dev jest-cucumbernpm install --save-dev jest-cucumber
フォルダー features を作成し、その中に Feature
ファイル NavigateToWebsite.feature
npm install --save-dev jest-cucumberプロジェクトルート/ §─askui_example/ §─ 特長/ §─ NavigateToWebsite.feature §─ ノードモジュール/ §─ ...
次の基本的な 機能
をこのファイルに書き込みます:
npm install --save-dev jest-cucumber機能: Web サイトに移動します シナリオ: ブラウザのアドレス バーに正しい URL を入力する Google 検索ページにいるとします AskUI練習ページのURLを入力すると 次に、Webページにアクセスします
各テストが特定のシナリオにマップされるステップ定義ファイル askui_example/navigate-to-url.step.ts を作成します。
npm install --save-dev jest-cucumberimport {defineFeature,loadFeature} from 'jest-cucumber'; import { aui } から './helpers/askui-helper'; // 機能ファイルをロードします const feature =loadFeature('features/NavigateToWebsite.feature'); defineFeature(feature, テスト => { // 機能ファイルの「シナリオ」にマップします test('ブラウザのアドレス バーに正しい URL を入力します', ({ 与えられた、いつ、その後 }) => { Given('Google 検索ページを表示しています', async () => { aui.moveMouse(500, 500).exec(); を待ちます。 aui.mouseLeftClick().exec(); を待ちます。 aui.pressTwoKeys('command', 't').exec(); を待ちます。 }); when('AskUI 練習ページの URL を入力します', async () => { await aui.typeIn('https://askui.github.io/askui-practice-page/').textfield().exec(); aui.pressKey('enter').exec(); を待ちます。 }); then('Web ページにアクセスします', async () => { await aui.expect().text('AskUI 練習ページへようこそ').exists().exec(); }); }); });
ブラウザを全画面で開き、次のコマンドでワークフローを開始します:
npm install --save-dev jest-cucumbernpm ラン アスクイ
ワークフローを実行すると新しいタブが開き、AskUI の練習ページに移動することがわかります。
AskUI と Cucumber を組み合わせると、BDD スタイルで AskUI ワークフローを作成できます。実際の人間のユーザーのようにテストを実行すると、すべての関係者にとってテストがより現実的なものになります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3