web-dev-qa-db-fra.com

Paramètre optionnel en concombre

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]"|  
17
larryq

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
30
basti1302

@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
0
Zack Xu