On 14 Mar 2009, at 15:50, Mark Wilden wrote:
On Sat, Mar 14, 2009 at 5:59 AM, Matt Wynne <[email protected]>
wrote:
I'm not sure if I like this - dependency between steps seems like a
dodgy
road to go down.
I'm wondering how you'd feel about a style I've adopted:
Scenario: Accepting a direct challenge, without leaving a comment
Given there is a challenge
And I am logged in
And I have been invited to that challenge
When I visit the challenge's page
And I press "Accept"
Then I should go to my attempt detail page for the challenge
And I should see that I accepted the challenge
And I should not see "Attempt Challenge"
Clearly, there is dependency between steps - each has to know what
challenge they're working on, for one thing. But I've found that it
reads better than the alternative
Given there is a challenge call 'Reach from the Stars' for 'Halo 3'
And I am logged in as Mark
And Mark was invited to 'Reach from the Stars' for 'Halo 3' on
'Sept 1, 2009' by 'Bill'
When I visit the challenge page for 'Reach from the Stars for
'Halo 3'
And I press "Accept"
Then I should go to Mark's attempt detail page for the challenge
'Reach from the Stars' for 'Halo 3'
And I should see that 'You accepted this challenge on Sept 1,
2009' And I should not see "Attempt Challenge"
The first one reads more like a business-level story to me and the
second one reads more like a test.
Totally agree with this, and I do it all the time. On my team we allow
ourselves to use the term 'the Widget' to mean Widget.first, but we'll
always assert Widget.count.should == 1 when we do.
We also have a nifty little convention that allows us to talk about
'the Widget "Foo"' and 'the Widget "Bar"' because pretty much every
entity in our domain (or at least the ones we refer to like this in
our features) has a #name attribute.
Matt Wynne
http://blog.mattwynne.net
http://www.songkick.com
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users