user1207289
user1207289

Reputation: 3253

optional argument matching in cucumber

How do I implement optional argument in cucumber.

I've step definition

     When /^I set parameter1 to (.+) and parameter2 to (.+) and parameter3 to (.+)$/ do    |arg1,arg2,arg3|

which is triggered by

     I set parameter1 to a,b and parameter2 to c,d and parameter3 to e,f

How can I make my step definition so it can be triggered by any one of these

     I set parameter1 to a,b and parameter2 to c,d and parameter3 to e,f

     I set parameter1 to a,b and parameter2 to c,d

     I set parameter1 to a,b

Upvotes: 0

Views: 982

Answers (1)

p0deje
p0deje

Reputation: 4053

It's better to use tables then

When I set parameters
  | parameter_id | value |
  | parameter1   | a,b   |
  | parameter2   | a,b,c |

Then in step definition you can iterate over table elements.

When /^I set parameters$/ do |table|
  puts table.hashes
  #=> { 'parameter1' => 'a,b', 'parameter2' => 'a,b,c' }
end

Upvotes: 2

Related Questions