[rspec-users] cucumber - referential (inherited?) scenarios

Ben Mabey ben at benmabey.com
Sat May 2 18:33:20 EDT 2009


Julian Leviston wrote:
> Fair enough.
>
> The steps from step definitions one is the best approach for what I 
> want, and it's actually what am doing, but I do notice that there's a 
> lot of the time when I'm actually re-typing the same text (ie once in 
> the explicit explanation of what it means to log in, and then once 
> more in the step definitions to refer to that login procedure) when I 
> do this approach. Re-typing the same stuff is pretty retarded, and 
> never a good idea.
>
> Hence... my interest in this feature :)
>
> How about this... Whenever I refer to other steps from within my 
> steps, they should be printed out on the output line... tabbed in a 
> bit, like so:
>
> Given I am logged in:
>     Given a default user exists
>     And I am on the login page
>     And I fill in "username" with "username"
>     And I fill in "password" with "password"
>     Then I should be on the superduper page
> Given...
> When...
> Then...
>
> Then the option to turn this feature off or on on the command line.

We would definitely want it as a feature you could turn on or off.  By 
default I think it should be off.  I think it adds a lot of noise to the 
feature output.  In most cases I don't care what the exact steps of 
logging in are.  How I log in can change and it doesn't really effect 
this scenario at all.  What is important is that you are logged in- not 
how you got there.  So this is probably not a feature I would personally 
use.  (Especially, given that I don't use steps within steps a whole 
lot.)  That said it seems like a reasonable request... Any other 
opinions on the suggested feature?  Should we move the discussion to 
lighthouse?

-Ben

>
> That'd be bloody brilliant. Okay so maybe I should go fork it and do 
> it :)
>
> Julian.
>
> On 03/05/2009, at 4:50 AM, Ben Mabey wrote:
>
>> Julian Leviston wrote:
>>> You know what'd be awesome?
>>>
>>> If Cucumber scenarios were referential.
>>>
>>> I mean, wouldn't it be awesome if you could refer to them... so you 
>>> could build on them...
>>>
>>> So in a login.feature I'd define:
>>>
>>> Scenario: logging in
>>> Given that a default user exists
>>> And I am on the login page
>>> When I fill in "username" with "username"
>>> And I fill in "password" with "password"
>>> Then I should be logged in
>>>
>>> And then in a different feature somewhere else, I could say:
>>>
>>> another.feature
>>>
>>> Scenario: make toast
>>> Given Scenario "logging in"
>>> Given I am on the exciting logged in page
>>> Then I .... blah blah blah
>>>
>>> and so on...
>>>
>>> Julian.
>>
>>
>> Believe it or not, this exact feature did exist in Cucumber at one 
>> time but was deprecated and is now removed.  You can find a good 
>> explanation of the reasoning behind that decision and what are the 
>> better alternatives on Joseph's blog:
>>
>> http://blog.josephwilk.net/ruby/cucumber-waves-goodbye-to-givenscenario.html 
>>
>>
>> -Ben
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users



More information about the rspec-users mailing list