Juanma C. wrote:
I am specing a feature, maybe at more high level of what it should be,
and this makes scenarios that involves more that one rails controller.
Is it possible or convenient?
I do not think its a problem touching multiple controllers if that’s
what is required for the user to achieve some specific value from the
system. The value is king.
When I answer 'Yes'
Then I see "Ok"
And I go to "/services/1"
Is this ok or I should define the features with only one single
I find deviating from the ordering of Given/When/Then can sometimes
produce scenarios that are hard to read and conceptualise. So I
personally avoid multiple iterations in a single scenario. This however
does not mean you should not touch multiple controllers.
I would suggest perhaps something like this for your example scenario:
Scenario: Making a successful reservation for massage service
Given I have gone to the reservation page
And I selected the service “massage”
When I choose the option “extra oil”
And I press the “make reservation” button
And I confirm my reservation
Then I will see “Ok, your reservation has been made for blah.
And I will see the total price
And I will be redirected to the service.
Scenario: Making a reservation but cancelling at confirmation
My scenario would still fail based on the ‘thens’ you mention. For
example if I don’t see the page ‘service1/1/options’ then I can never
click the option for extra oil. So your thens have become implied. They
are part of the journey, the destination (and value) is seeing I’ve made
Looking at your initial steps this one jumps out at me:
Given I want to make a reservation for a service
While it gives intent and a goal it does not explain the start state so
I would question its usefulness. It feels more like the scenario name.