[rspec-users] Problem with Custom matcher and Blocks
Matt Wynne
matt at mattwynne.net
Thu Apr 2 18:18:50 EDT 2009
On 2 Apr 2009, at 22:21, Zach Dennis wrote:
> Matt, can you say where you gauge your app?
> - Are there many little scenarios covering the details of the page?
> - Are the scenarios comprised of many steps which look at all aspects
> of the page?
> - Are the step definitions detail oriented? e.g.: looking at the
> project looks at all of the pieces of information it should be
> displaying
>
> I'm really interested in this topic as I think I've seen when Cucumber
> is relied on too much and I've definitely seen where it's been relied
> on too little. So naturally I'm interested to find out more about
> people's projects to help gauge where things fall on the continuum,
What we have are a relatively small number of pages that have a lot of
different stuff on them, and that stuff depends a lot on the context.
So for example, a Concert page will show media about that concert, but
we juggle the media around depending on what there happens to be -
we'll prefer to show a poster if someone has uploaded one, but
otherwise we'll show a photo if there's one of those. Then, depending
on the aspect (landscape / portrait) of the photo, we'll use a
different grid layout for the media and show different numbers of them.
All these little rules get complex pretty quickly, and there are two
advantages I've found for expressing them in Cucumber.
(1) They're super easy to read for both the CSS / markup guy who
fiddles with the layout, the product owner, and anyone else who wants
to get a handle on them
(2) They're totally de-coupled from the implementation, which means I
can start with some ugly thing that filters and juggles arrays, while
we figure out exactly how we want it to work, then later optimize it
into a database query once the requirements have solidified.
This is the key thing for me about driving everything out from
acceptance tests - you get absolute flexibility about your
implementation with the confidence to know you can change whatever you
like and you're still covered. The trade-off I guess is the length of
the build, and possibly the maintainability of the test suite if
people get sloppy about keeping it tidy. The first is definitely an
issue for us now, but the second is not really a problem at all for us
as yet - 910 scenarios and counting..! :)
So to answer your questions, we would parts of the behaviour of each
page on the site as different features - so I guess this maps to what
you call 'many little scenarios covering the details of the page'
If you email me directly I'll send you a beta invite and you can take
a look for yourself :)
Matt Wynne
http://beta.songkick.com
http://blog.mattwynne.net
More information about the rspec-users
mailing list