[rspec-users] [Cucumber] Tables
Matt Wynne
matt at mattwynne.net
Tue Apr 21 14:17:03 EDT 2009
On 21 Apr 2009, at 17:39, aslak hellesoy wrote:
> Being the author of Cucumber, some of you might be surprised that I
> ask this question:
>
> How should I go about to implement a Cucumber feature and step
> definition with the following data?
> http://gist.github.com/99220 (just look at the first file for now)
>
> Imagine I'm opening a restaurant where customers are asked for their
> religion. Based on what they answer, they will be presented with a
> tailored menu. (Apologies in advance if I'm ignorant about what
> different people it).
>
> In Cucumber, there are several ways to put this table in a feature.
> It can be part of a table in a Scenario Outline's Examples section (http://wiki.github.com/aslakhellesoy/cucumber/scenario-outlines
> ), or it can be sent to a Step as a multiline argument (http://wiki.github.com/aslakhellesoy/cucumber/multiline-step-arguments
> ).
>
> In either case, I'm not happy about the feature and step definitions
> I end up with. The Scenario Outline version has annoying
> duplication. I have to duplicate each meat 3 times! This makes it
> hard to read and edit. The multiline step argument version isn't
> much better. If a menu for a religion is wrong I'll only get one
> error, the error won't tell me what's wrong (unless I explicitly
> craft my error messages in the step definition) and max one failure
> will show (there is only one scenario).
>
> There should be a better way to express this kind of tests. But I'm
> not sure how. Is there a smarter way with the current Cucumber? If
> not, how would you *like* to express this sort of problem?
>
> Cheers,
> Aslak
Looking at the forks of your example gist, I think I would have done
it exactly the way mabes suggested. I'm not sure if I can think of a
better way.
Matt Wynne
http://blog.mattwynne.net
http://www.songkick.com
More information about the rspec-users
mailing list