きゅうり-特徴
A Featureスタンドアロンユニットまたはプロジェクトの機能として定義できます。ソーシャルネットワーキングサイトの非常に一般的な例を見てみましょう。この製品/プロジェクトの機能はどのように見えますか?次のように判断できる基本的な機能はほとんどありません。
ソーシャルネットワーキングサイトからユーザーを作成して削除します。
ソーシャルネットワーキングサイトのユーザーログイン機能。
ソーシャルネットワーキングサイトで写真やビデオを共有する。
友達リクエストを送信します。
Logout.
これまでのところ、Cucumberについて話すとき、テスト対象の製品のそれぞれの独立した機能を機能と呼ぶことができることは明らかです。後でテストを開始するときに、テストスクリプトを取得する前に、テストする機能を決定することをお勧めします。
機能には通常、その機能についてテストするシナリオのリストが含まれています。機能、テストする機能およびシナリオに関する説明を保存するファイルは、次のように知られています。Feature File。機能ファイルの詳細については、次の章で説明します。
Gherkinsでテスト中の機能を表すキーワードは、「機能」です。推奨されるベストプラクティスは、機能ファイルの機能タイトルの下に機能の簡単な説明を書き込むことです。これにより、優れたドキュメントの必要性も満たされます。
例
Feature −ソーシャルネットワーキングサイトのログイン機能。
ユーザー名とパスワードが正しければ、ユーザーはソーシャルネットワーキングサイトにログインできるはずです。
ユーザー名とパスワードが正しくない場合、ユーザーにエラーメッセージが表示されます。
ユーザー名とパスワードが正しければ、ユーザーはホームページに移動する必要があります。
機能ファイル
キュウリのテストが書かれているファイルは、として知られています feature files。テスト対象の機能ごとに、個別の機能ファイルを用意することをお勧めします。機能ファイルの拡張子は「.feature」である必要があります。
必要な数の機能ファイルを作成できます。構造を整理するには、各機能に1つの機能ファイルが必要です。
例-
シニア番号 | 特徴 | 機能ファイル名 |
---|---|---|
1 | ユーザーログイン | userLogin.feature |
2 | 投稿を共有する | sharePost.feature |
3 | アカウントを作成する | createAccount.feature |
4 | アカウントを削除する | deleteAccount.feature |
機能名、機能ファイル名に使用される命名規則は、個人の選択によって異なります。キュウリには名前に関する基本的なルールはありません。
シンプルな機能ファイルは、次のキーワード/パーツで構成されています-
Feature −テスト中の機能の名前。
Description (オプション)-テスト中の機能について説明します。
Scenario −テストシナリオは何ですか。
Given −テストステップが実行される前の前提条件。
When −次のステップを実行するために一致する必要がある特定の条件。
Then −WHENに記載されている条件が満たされた場合はどうなりますか。
例
Feature −ソーシャルネットワーキングサイトへのユーザーログイン。
ユーザー名とパスワードが正しい場合、ユーザーはソーシャルネットワーキングサイトにログインできる必要があります。
ユーザー名とパスワードが正しくない場合、ユーザーにエラーメッセージが表示されます。
ユーザー名とパスワードが正しい場合、ユーザーはホームページに移動する必要があります。
Outline −ソーシャルネットワーキングサイトのログイン機能。
指定されたユーザーはFacebookに移動します。ユーザー名を「<ユーザー名>」、パスワードを「<パスワード>」と入力すると。その後、ログインは失敗するはずです。
| username | password |
| username1 | password1 |
* AND キーワードは、2つの条件間の接続詞を示すために使用されます。 AND のような他のキーワードと一緒に使用できます GIVEN, WHEN そして THEN。
機能ファイルに記述されているロジックの詳細はありません。
ステップの定義
テストシナリオを定義した機能ファイルを用意しました。ただし、これは完全な作業ではありません。Cucumberは、機能ファイルで概説されている特定のシナリオに対してどのコードを実行するかを実際には知りません。
これにより、中間のステップ定義ファイルが必要になります。ステップ定義ファイルには、機能ファイルで定義されたシナリオの各ステップ間のマッピングと、実行される機能のコードが格納されます。
そのため、Cucumberは、機能ファイルに記載されているシナリオのステップを実行すると、ステップ定義ファイルをスキャンして、呼び出される関数を特定します。
ステップ定義ファイルの例
public void goToFacebook() {
driver = new FirefoxDriver();
driver.navigate().to("https://www.facebook.com/");
}
@When "^user logs in using Username as \"([^\"]*)\" and Password as \"([^\"]*)\"$"
public void I_enter_Username_as_and_Password_as(String arg1, String arg2) {
driver.findElement(By.id("email")).sendKeys(arg1);
driver.findElement(By.id("pass")).sendKeys(arg2);
driver.findElement(By.id("u_0_v")).click();
}
@Then"^login should be unsuccessful$"
public void validateRelogin() {
if(driver.getCurrentUrl().equalsIgnoreCase(
"https://www.facebook.com/login.php?login_attempt=1&lwv=110")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
したがって、各関数で、各テストステップ(つまり、GIVEN / THEN / WHEN)で実行するコードが何であれ、ステップ定義ファイル内に書き込むことができます。各ステップでコード/関数が定義されていることを確認してください。
この関数はJava関数にすることができ、テスト手順を自動化するためにJavaコマンドとSeleniumコマンドの両方を使用できます。