オプションのパラメーターが必要なステップ定義があります。このステップへの2つの呼び出しの例は、私が求めている他の何よりもよく説明できると思います。
I check the favorite color count
I check the favorite color count for email address '[email protected]'
まず、デフォルトのメールアドレスを使用します。
このステップを定義する良い方法は何ですか?私は正規表現の第一人者ではありません。私はこれを試みましたが、キュウリは私に正規表現の引数の不一致に関するエラーを与えました:
Then(/^I check the favorite color count (for email address "([^"]*))*"$/) do |email = "[email protected]"|
optional.feature:
Feature: Optional parameter
Scenario: Use optional parameter
When I check the favorite color count
When I check the favorite color count for email address '[email protected]'
optional_steps.rb
When /^I check the favorite color count(?: for email address (.*))?$/ do |email|
email ||= "[email protected]"
puts 'using ' + email
end
出力
Feature: Optional parameter
Scenario: Use optional parameter
When I check the favorite color count
using [email protected]
When I check the favorite color count for email address '[email protected]'
using '[email protected]'
1 scenario (1 passed)
2 steps (2 passed)
0m0.047s
@larryq、あなたは思ったよりソリューションに近かった...
optional.feature:
Feature: optional parameter
Scenario: Parameter is not given
Given xyz
When I check the favorite color count
Then foo
Scenario: Parameter is given
Given xyz
When I check the favorite color count for email address '[email protected]'
Then foo
optional_steps.rb
When /^I check the favorite color count( for email address \'(.*)\'|)$/ do |_, email|
puts "using '#{email}'"
end
Given /^xyz$/ do
end
Then /^foo$/ do
end
出力:
Feature: optional parameter
Scenario: Parameter is not given
Given xyz
When I check the favorite color count
using ''
Then foo
Scenario: Parameter is given
Given xyz
When I check the favorite color count for email address '[email protected]'
using '[email protected]'
Then foo
2 scenarios (2 passed)
6 steps (6 passed)
0m9.733s