2017-03-10 6 views
2

新しいRailsアプリケーションを学習し、いくつかのテストを作成します。テストを書いている間、質問が出ました:キュウリを使用したカピバラ試験の背景

キュウリを使ったカピバラ試験で「背景」と書くのはどういう意味ですか?なぜ、「バックグラウンド」と書くのですか?避けられますか?

- >テストデータベースとは何か関係がありますか?または、それは "シナリオ"のデータベースとして機能しますか?

Feature: User signup 
    As a user 
    I want to sign in 
    So I can use service features 

**Background**: 
    Given user with "[email protected]" email and "qwerty" password 

Scenario: Signing in with correct credentials 
    When I go to sign in page 
    And I fill in "email" with "[email protected]" 
    And I fill in "password" with "qwerty" 
    And I click "Login" button 
    Then I should see "Welcome, [email protected]!" 

答えて

2

バックグラウンドは各シナリオの前で、Before Hooksのいずれかの後に実行されます。 キュウリのシナリオを書くためのDRY戦略。実際のテストケースを実行する前に実行する必要がある一連の「前提条件」ステップ。

たとえば、ダッシュボードまたはプロファイルページの内容を確認する前に、ユーザーがログインしている必要があります。したがって、ログインしたカバレッジは「バックグラウンド」セクション内で実行されます

背景: //ユーザーログインを取得

シナリオ://ログインダッシュボードページ.....

シナリオ:詳細情報については、//ログインプロフィールページ....

https://github.com/cucumber/cucumber/wiki/Background

あなたがここにシナリオ概要 を使用することができ、ユーザーの異なるセットについて10の例である:

https://makandracards.com/makandra/18905-how-to-not-repeat-yourself-in-cucumber-scenarios

は、この情報がお役に立てば幸いです!

1

背景のポイントは、いくつかのシナリオの共通出発点を定義することです。シナリオが1つしかない場合は、物を部分に分割する手段としてのみ意味があります。単体テストフレームワークに精通している場合は、xunitファミリのsetupメソッド、またはrspecを使用する場合はbeforeブロックに似ています。テストを実行する目的のために、の背景をのシナリオ内に入れることもできます。再利用の仕組みです。

背景とテストデータベースの間に直接の関係はありません。キュウリから実行するすべての手順がデータベースにヒットする可能性があります。 のバックグラウンドは、データベースに適切な開始状態を設定するために使用されます。あなたのキュウリ/カピバラの設定に応じて、データベースは各シナリオの間にリセットされ、バックグラウンドは各シナリオの前に再度実行されます。

+0

ありがとうございます。今質問があります: バックグラウンドで別の名前/電子メールを書き、シナリオで異なる場合はどうなりますか?バックグラウンドとシナリオの関係も把握できません。 –

+0

バックグラウンドをシナリオの前に実行されるステップと考えるようにしてください。あなたは関係を見ることができない場合は多分あなたはそれを削除することができますか?上記の例では、シナリオ間で再利用できる特定のユーザーを使用してデータベースを設定します。 – froderik

関連する問題