J'ai une définition d'étape dans laquelle j'aimerais avoir un paramètre facultatif. Je crois qu'un exemple de deux appels à cette étape explique mieux que tout ce que je cherche.
I check the favorite color count
I check the favorite color count for email address '[email protected]'
En premier lieu, j'aimerais utiliser une adresse électronique par défaut.
Quel est le bon moyen de définir cette étape? Je ne suis pas un gourou des expressions rationnelles. J'ai essayé de faire cela, mais concombre m'a donné une erreur concernant les discordances d'arguments d'expression rationnelle:
Then(/^I check the favorite color count (for email address "([^"]*))*"$/) do |email = "[email protected]"|
option.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
sortie
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, vous étiez plus proche de la solution que vous ne le pensiez ...
option.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
sortie:
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