[rspec-users] the Given, When, Then framework

David Chelimsky dchelimsky at gmail.com
Sat Jun 14 14:29:29 EDT 2008


On Jun 14, 2008, at 1:23 PM, aidy lewis wrote:

> Hi David,
>
> On 14/06/2008, David Chelimsky <dchelimsky at gmail.com> wrote:
>>
>> On Jun 14, 2008, at 12:50 PM, aidy lewis wrote:
>>
>> Hi,
>>
>> Is the Given, When, Then framework, the user story, the acceptance
>> criteria or both?
>>
>> From my talk at railsconf:
>> http://en.oreilly.com/rails2008/public/schedule/detail/2055
>>
>>
>> =============================================
>> Story: measure progress towards registration goals
>>  As a conference organizer
>>  I want to see a report of registrations
>>  So that I can measure progress towards registration goals
>>
>>  Scenario: one registration shows as 1%
>>    Given a goal of 200 registrations
>>    When 1 attendee registers
>>    Then the goal should be 1% achieved
>>
>>  Scenario: one registration less than the goal shows as 99%
>>    Given a goal of 200 registrations
>>    When 199 attendees register
>>    Then the goal should be 99% achieved
>> =============================================
>>
>> The story and the text before the first scenario is the User Story  
>> as we've
>> always known it in XP.
>>
>> The Scenarios are automated, and represent acceptance criteria.
>>
>> Make sense?
>>
>> Cheers,
>> David
>>
>
> Certainly does. I am automating the tests (only tester on my project),
> but I have asked the BA's not only to write the story then, but also
> give the scenarios. I do a lot of re-work on the story though.
>
> Should I just be asking just for the story and for me to add the tests
> (Given, When, Then)
>
> I also asked them for negative scenarios.

The ideal situation is that you and the BA's sit down together to work  
this out. The goal here is group communication rather than one role  
owning part of the communication.

Short of that, there is no one right way to do this. Perhaps they  
provide stories, you add scenarios as demonstration, they add more  
scenarios for thoroughness, etc.

What is a "negative scenario"?


More information about the rspec-users mailing list