# File: demo03.feature Feature: Show the use of a basic macro with multiple arguments As a Cuke user So that I enjoy writing scenario. Scenario: defining basic macro with multiple arguments # The next step creates a macro(-step)double quotes. # The steps to execute when the macro is used/invoked are listed in the multiline triple quotes arguments. # The macro-step arguments are put between chevrons <...>. Given I define the step "* I [enter my userid and password ]" to mean: """ Given I landed in the homepage When I click "Sign in" And I fill in "Username" with "" And I fill in "Password" with "" And I click "Submit" """ Scenario: Let's use the macro we created above # Here the macro is invoked. Actual value for the argument is put between double quotes. When I [enter my userid "guest" and password "unguessable"] # The next step verifies that the steps from the macro were effectively executed. Then I expect the following step trace: """ Invoked step: ... I landed in the homepage Invoked step: ... I click "Sign in" Invoked step: ... I fill in "Username" with "guest" Invoked step: ... I fill in "Password" with "unguessable" Invoked step: ... I click "Submit" """ Scenario: A macro invoking another macro (YES, it's possible!) Given I define the step "* I [enter my credentials]" to mean: """ # Notice that the next step is invoking the first macro above When I [enter my userid "guest" and password "unguessable"] """ # Invoking our lastly-created macro When I [enter my credentials] # Check that the nested macro still works Then I expect the following step trace: """ Invoked step: ... I landed in the homepage Invoked step: ... I click "Sign in" Invoked step: ... I fill in "Username" with "guest" Invoked step: ... I fill in "Password" with "unguessable" Invoked step: ... I click "Submit" """