Without adding a new feature to Cucumber, I'd probably do

Scenario Outline: Religious menus
  Given the customer is a "<Religion>"
  When they ask for the menu
  Then they should be presented with "<Meats>"

Examples:
  | Religion  | Meats             |
  | Christian |  Pork, Lamb, Veal |
  | Jewish    |        Lamb, Veal |
  | Muslim    |        Lamb, Veal |
  | Hindu     |        Lamb       |

and then parse the meat string in the step definition

meat.split(',') etc


On Apr 21, 2009, at 12:39 PM, 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

_______________________________________________
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

Reply via email to