[rspec-users] Testing a wizard with Cucumber

Andrew Premdas apremdas at gmail.com
Tue Nov 4 11:53:06 EST 2008


Thanks Matt, just what I was looking for :)
Andrew

2008/11/4 Matt Wynne <matt at mattwynne.net>

> On 4 Nov 2008, at 15:41, Andrew Premdas wrote:
>
>  Assuming you have a multi-step wizard like thing, with lots of different
>> states and paths through it. What approach would your use to write a feature
>> for it? What I want to do is do the separate states and then reuse these
>> things in more complex scenarios that cover paths. For example
>>
>> Scenario: State A
>>   Given I'm ...
>>   And I'm ...
>>   When I ...
>>   Then I should see
>>   And I at state A
>>
>> Now I'd like to reuse this to make my scenario from going from A to B
>> shorter e.g
>>
>> Scenario: Test A to B
>>  Given State A
>>  When I ...
>>  ...
>>
>>
>> Instead of
>>
>> Scenario: Test A to B
>>   Given I'm ...
>>   And I'm ...
>>   When I ...
>>   Then I should see
>>   And I at state A
>>   When I ...
>>    ...
>>
>> Is this possible? Do you have any other pointers about simplifying and
>> organising complex scenarios? Thanks in advance...
>>
>
> There's a relatively new (and possibly undocumented) feature in cucumber[1]
> where you can call steps from within other steps.
>
> So for example, you can have one scenario like this:
>
>    Scenario: Log in as admin
>        Given I visit the login page
>        And I enter the username "matt"
>        And I enter the password "secret"
>        And I press "Submit"
>        Then I should be on the admin page
>
>
> And another one like this:
>    Scenario: View admin reports
>        Given I log in as admin
>        And I view the reports page
>        Then I should see "reports"
>
> When you write the ruby step matcher for the first step in this scenario,
> you just call the step matchers that you wrote for the first scenario, like
> this:
>
> Given /I log in as admin/ do
>  Given "I visit the login page"
>  Given 'I enter the username "matt"'
>  Given 'I enter the password "secret"'
>  Given 'I press "Submit"'
> end
>
> Does that make sense? Does it help?
>
> cheers,
> Matt
>
> [1]
> http://rspec.lighthouseapp.com/projects/16211/tickets/3-create-givenscenario-dependency-accross-feature-files
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20081104/14b7c1da/attachment.html>


More information about the rspec-users mailing list