On Sat, Jan 17, 2009 at 10:48 PM, Bart Zonneveld <zuperinfin...@gmail.com>wrote:
> Hey gang, > > I find myself struggling with multiple step definitions in cucumber all the > time. I regularly test the contents of my flash[:notice] in steps, since I > think that's part of the behaviour of the app. So, while implementing a new > feature, I ran into the following error: > > /opt/local/lib/ruby/gems/1.8/gems/cucumber-0.1.15/bin/../lib/cucumber/step_mother.rb:81:in > `regexp_args_proc': Multiple step definitions match "zou ik een melding > moeten zien dat de reactie gemarkeerd is als spam": (Cucumber::Multiple) > > features/steps/comments.rb:93:in `/^zou ik een melding moeten zien dat de > reactie gemarkeerd is als spam$/' > features/steps/common.rb:9:in `/^zou ik een melding moeten zien dat de|het > (.*?) is opgeslagen$/' > > Even those who aren't fluent in Dutch (since that's what the steps are > written in), it's clearly not the same step... I am no regex wizard, so I > might do something horribly wrong with my steps, but I do like to know how I > can fix this. > Step 1) Use rubular.com. It rocks. For this example you'll see that your string matches both regexen (and where in the regexen they match) Step 2) Avoid | in Step definitions if you can. They often work against the idea of a Ubiquitous Language. You can read more about this here: http://www.nabble.com/Help-with-regexp-in-matcher-to21425148.html I realise that in your case you're using | to work around Dutch grammar (several ways to say "the"), and in this case I think | is ok. You probably wanted this: /^zou ik een melding moeten zien dat (?:de|het) (.*) is opgeslagen$/ Ik hoop dat dit helpt :-) Aslak > Any ideas? > thanks, > bartz > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users > -- Aslak (::)
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users