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?
I think the second way is a better way of expressing the problem, the
output/run strategy is the problem.
What you really want is an examples table that is embedded in a step
(different from a step table, maybe by keyword?) that causes the step to
be run multiple times for each of the values. So rather than using
placeholders we embedded a Examples table in the step.
Just my inital thoughts. I'll knock together an example and more ideas
when I get home...
--
Joseph Wilk
http://blog.josephwilk.net
Cheers,
Aslak
------------------------------------------------------------------------
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users