私はきゅうりが初めてで、機能を定義する最良の方法を見つけようとしています。
サイトを複数の言語でテストする必要があるため、テストしたい機能は常に同じですが、言語が異なると、ページで検索する必要があるテキストが異なる場合があります。これは大まかに私がやりたいことです:
Scenario Outline: Browse through category from the home page
Given I am on the <country> home page
When I browse categories
Then I should get the browse category page
Examples:
| country |
| UK |
| IT |
| US |
機能の説明自体でカテゴリの値を指定していません。理由は次のとおりです。
- DB からカテゴリを読み取れるようにしたいので、カテゴリを追加/削除するたびに、テスト自体を変更する必要はありません
- 同じ機能ファイルに 20 のカテゴリを持つ 10 の国があると想像してみてください...混乱するでしょう
- 2 を回避するために、国ごとに機能ファイルを作成できますが、同じ機能の説明を N 回コピーして貼り付ける必要があります。
別のステップから別のステップを解決策として呼び出すことを考えました。次の擬似コードのようなもの:
When /^I browse categories$/ do
on CURRENT_HOME_PAGE do |page|
page.categories_list.each do |category|
....visit category page....
....call "Then I should get the browse category page" step...
....go back to CURRENT_HOME_PAGE....
end
end
end
これが最善の最善の解決策であるかどうかはわかりません。ほとんどの人は、ステップからステップを呼び出すことも非推奨にしています。ステップと機能の定義を混同するのは好きではないので、個人的には好きではありません。