私はキュウリのテストに不慣れです。
2つの機能ファイルを作成しました。
events.feature
partner.feature
ステップ定義をstep_definitionsフォルダーに入れます。
./step_definitions/
events.rb
partner.rb
Cucumberは、すべての.rbファイルでステップ情報を検索しているようです。
特定のステップ定義ファイルを参照するように機能を制限する方法はありますか?
これを実行したい理由は、-guessフラグを使用している場合でも、あいまいな一致エラーが発生するためです。
私がこれをやりたい理由は次のとおりです。私はCMSをテストしており、さまざまなコンテンツタイプ(イベントとパートナー)のそれぞれを別々の機能でテストしたいと考えています。
events.feature
Feature: Add partner
As an administrator I can add a new partner
Scenario: Create partner
Given I am logged in
When I create a partner
Then I should see content
パートナー。機能
Feature: Add event
As an administrator I can add a new event
Scenario: Create event
Given I am logged in
When I create an event
Then I should see content
両方のシナリオにある「コンテンツが表示されるはずです」に焦点を当てるだけで、エラーが発生します。これは、.rbファイルに次のものを含める必要があるためです。
Partners.rb
Then /^I should see content$/ do
BROWSER.html.should include('SOME PARTNER CONTENT')
end
events.rb
Then /^I should see content$/ do
BROWSER.html.should include('SOME EVENT CONTENT')
end
これは、「コンテンツを表示する必要がある」というあいまいな一致があることを意味します。
これを構成するさまざまな方法があることを理解しています。つまり、コンテンツ機能を作成し、シナリオの概要を使用できます。
Feature: Add content
As an administrator I can add a new content
Scenario Outline: Create content
Given I am logged in
When I create an <content type>
Then I should see <example content>
Examples:
|event |March Event |
|partner |Joe Blogs |
しかし、各コンテンツタイプを独自のテスト機能にカプセル化したいので、これは行いたくありません。
したがって、基本的に、テストしている機能に応じて特定のステップファイルを実行する方法を理解する必要があります。