スポンサーリンク

ReqnrollのFeatureファイルの書き方(BDD入門)

この記事は「Reqnroll × Playwrightで始めるE2Eテスト入門」シリーズの一部です。

ReqnrollのFeatureファイルの書き方(BDD入門)

Reqnrollでは、Featureファイルを使ってテストシナリオを文章形式で記述します。

この書き方は BDD(Behavior Driven Development) と呼ばれ、ユーザーの行動をベースにテストを書く方法です。

この記事では、Reqnrollで使用する Featureファイルの基本的な書き方を解説します。

この記事でわかること

  • Featureファイルとは何か
  • Given / When / Then の意味
  • Featureファイルの基本構文
  • 実際のサンプルコード

Featureファイルとは

Featureファイルとは、テストシナリオを文章で書くファイルです。

ファイルの拡張子は次の通りです。

.feature

Login.feature

Featureファイルでは Gherkin(ガーキン)構文を使います。

Featureファイルの基本構造

基本構造は次のようになります。

Feature: 機能名

Scenario: テストシナリオ
Given 前提条件
When 操作
Then 結果

この形式で ユーザーの操作と結果を記述します。

BDDの基本キーワード

Featureファイルでは主に次のキーワードを使います。

キーワード意味
Featureテスト対象の機能
Scenarioテストケース
Given前提条件
Whenユーザーの操作
Then期待される結果
And追加の条件

簡単なサンプル

ログイン機能のテスト例です。

Feature: Login

Scenario: 正しい情報でログインできる
Given ログイン画面を開く
When メールアドレス "test@example.com" を入力する
And パスワード "password123" を入力する
And ログインボタンをクリックする
Then ダッシュボード画面が表示される

このシナリオでは次の処理を表しています。

  1. ログイン画面を開く
  2. メールアドレスを入力
  3. パスワードを入力
  4. ログインボタンをクリック
  5. ダッシュボード画面が表示される

Featureの書き方

Featureでは テスト対象の機能を書きます。

Feature: Login

もう少し詳しく書くこともできます。

Feature: ユーザーログイン
ユーザーがアプリにログインできることを確認する

Scenarioの書き方

Scenarioは 1つのテストケースです。

Scenario: 正しい情報でログインできる

1つのFeatureには 複数のScenarioを書くことができます。

Scenario: 正しい情報でログインできる

Scenario: パスワードが間違っている

Givenの書き方

Givenでは 前提条件を書きます。

Given ログイン画面を開く

これは「ログインページにアクセスする」という意味になります。

Whenの書き方

Whenでは ユーザーの操作を書きます。

When メールアドレス "test@example.com" を入力する

追加の操作は And を使います。

When メールアドレス "test@example.com" を入力する
And パスワード "password123" を入力する

Thenの書き方

Thenでは 期待される結果を書きます。

Then ダッシュボード画面が表示される

これは ログイン成功を確認するステップです。

パラメータを使う方法

Featureファイルでは パラメータを使うことができます。

When メールアドレス "test@example.com" を入力する

この "test@example.com"StepDefinitionに渡されます。

StepDefinitionの例

[When(@"メールアドレス ""(.*)"" を入力する")]
public async Task EnterEmail(string email)
{
    await _page.Locator("#email").FillAsync(email);
}

このように FeatureファイルとC#コードが連携します。

Featureファイルのベストプラクティス

Featureを書くときは、以下のポイントを意識します。

ユーザー目線で書く

悪い例

ボタンをクリックする

良い例

ログインボタンをクリックする

実装の詳細を書かない

Featureファイルは 仕様を書く場所です。

悪い例

CSSセレクタ #login をクリック

良い例

ログインボタンをクリック

シナリオは短くする

1つのScenarioは 1つの目的にします。

ログイン成功
ログイン失敗

ReqnrollでFeatureが実行される仕組み

Reqnrollでは、次の流れでテストが実行されます。

Featureファイル

StepDefinition

Playwrightなどのテストコード

Featureファイルの文章と、C#のテストコードが結びつくことでE2Eテストが実行されます。

まとめ

Reqnrollでは、Featureファイルを使って BDD形式のテストシナリオを書くことができます。

Featureファイルの基本構造は次の通りです。

Feature
Scenario
Given
When
Then

この形式を使うことで、読みやすく分かりやすいテストシナリオを書くことができます。

.NET
スポンサーリンク
シェアする
trelab