On Wed, Apr 22, 2009 at 1:17 AM, aslak hellesoy <aslak.helle...@gmail.com>wrote:
> > > 2009/4/17 Lenny Marks <le...@aps.org> > >> I've been doing something similar. I think the benefit of having half the >> steps(each can be negated) wins over the small impact it has on step >> readability. Personally I started adding stuff like this(perhaps not as DRY >> but simple enough): >> Then /^the correspondence should (not )?have inclusions$/ do |negate| >> if negate >> @outcorr.inclusions.should be_empty >> else >> @outcorr.inclusions.should_not be_empty >> end >> end >> > > Thanks Lenny. You get it. Readability trumps obsessive DRYness. > Corollary: The value of DRYness diminishes with distance. > >> This is just a thought, but every solution on this thread, including this one, indicates to me that something is amiss. I don't recall ever seeing a "Then" step without a "should" or "should not" (I've only come across steps in English so far). To me, this means there's something special about "Then" steps, and quite possibly the "should" / "should not" aspect of it should be built into the cucumber grammar. I'll be the first one to agree that cucumber steps are not the place to get cute, and that readability is paramount, but seriously, shouldn't you be able to negate the core expectation of a step without having to write extra code? Jeff > >> -lenny >> >> On Apr 16, 2009, at 12:03 PM, Joaquin Rivera Padron wrote: >> >> wow! even shorter :-) >> >> 2009/4/16 Matt Wynne <m...@mattwynne.net> >> >>> >>> On 16 Apr 2009, at 14:06, Joaquin Rivera Padron wrote: >>> >>> thanks matt, >>>> yes, the regexp in the step matcher is a good one to dry it up >>>> >>>> So I end up with this one: >>>> >>>> Then /^I (should|should not) see the people search form$/ do |maybe| >>>> people_search_form_should_exist maybe == "should" >>>> end >>>> >>>> and the method: >>>> >>>> def people_search_form_should_exist it_should_exist >>>> _not = "_not" unless it_should_exist >>>> >>>> response.send "should#{_not}".to_sym, have_tag('form#frmSearch') >>>> end >>>> >>>> only because I find it easier to read (when I don't need to jump to the >>>> method), but yours maybe faster (shorter it is), I could come back to it >>>> later and benchmark both >>>> >>> >>> If you don't mind using the #send (I was trying to help you get rid of >>> it) then just do this: >>> >>> Then /^I (should|should not) see the people search form$/ do |maybe| >>> response.send maybe.underscore.to_sym, have_tag('form#frmSearch') >>> end >>> >>> >>> thanks again, >>>> joaquin >>>> _______________________________________________ >>>> rspec-users mailing list >>>> rspec-users@rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/rspec-users >>>> >>> >>> Matt Wynne >>> http://blog.mattwynne.net >>> http://www.songkick.com >>> >>> _______________________________________________ >>> rspec-users mailing list >>> rspec-users@rubyforge.org >>> http://rubyforge.org/mailman/listinfo/rspec-users >>> >> >> >> >> -- >> www.least-significant-bit.com >> _______________________________________________ >> 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 >> > > > _______________________________________________ > 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