[rspec-users] Constraints / Global requirements

Steve Molitor stevemolitor at gmail.com
Thu Jan 8 12:05:40 EST 2009


Whoops I misunderstood again.  You'd validate that it was an instance
ValidDate to make sure the date validation code was executed.  Got it now.
 Maybe you could mock out the date validation part of the code and set an
expectation that it should be called:
  mock_date_validator.should_receive?(:validate).with(the_date).return(true)

You're completely mocking out the date validation result, but you're testing
that the date validation routine was indeed called, and if you've tested
that routine elsewhere you should be good.

Or something like that.  Good ideas, thanks.

Steve

On Thu, Jan 8, 2009 at 10:32 AM, Steve Molitor <stevemolitor at gmail.com>wrote:

> I guess that would work.  But a method would probably work too, if I'm
> understanding correctly (often a bad assumption!).   I.e. /"(.*)" should be
> a valid date/ would call valid_date?(date), or something.  Anyway, yes that
> sounds promising.
> Steve
>
>
>
> On Wed, Jan 7, 2009 at 8:09 PM, Pat Maddox <pergesu at gmail.com> wrote:
>
>> Another idea I had is to potentially introduce a ValidatedDate class,
>> and then your "should be a valid date" step checks that the field is
>> an instance of ValidatedDate.  That has the affect of ensuring that
>> people use your validation code in those spots where you want them to.
>>  How does that sound?
>>
>> Pat
>>
>> On Wed, Jan 7, 2009 at 5:58 PM, Steve Molitor <stevemolitor at gmail.com>
>> wrote:
>> > Yeah I thought of something like that.  Actually we do something like
>> that
>> > in one step now that I think about it.  But I really wanted to execute
>> the
>> > same exact date feature (for example) doc that the user verified to make
>> > sure nothing got lost in translation.  Which I could do if I
>> > programmatically ran the date feature file inside the Given /(.*) date
>> is
>> > vaild/ step.  But all those results would clutter up the report output.
>>  I
>> > like your approach best: simple and doesn't require a funky technical
>> > solution.
>> > Steve
>> >
>> > On Wed, Jan 7, 2009 at 7:26 PM, Pat Maddox <pergesu at gmail.com> wrote:
>> >>
>> >> > From a testing perspective it would be nice if cucumber could
>> actually
>> >> > run
>> >> > the date validation feature everywhere it applies.
>> >>
>> >> Sure, and you can have a step like
>> >>
>> >> Given birth date is valid
>> >>
>> >> Given /(.*) date is valid/ do |field|
>> >>  TestData.valid_dates.each do |date|
>> >>    @it.send "#{field}_date=", date
>> >>    @it.should be_valid
>> >>  end
>> >>
>> >>  TestData.invalid_dates.each do |date|
>> >>    @it.send "#{field}_date=", date
>> >>    @it.should_not be_valid
>> >>  end
>> >> end
>> >>
>> >> That gets you technical validation everywhere you need it.  Then you
>> >> have another individual feature file that describes date formats.
>> >>
>> >>
>> >> > P.S. Date validation really isn't that important in my application;
>> >> > that's
>> >> > just an example.  A real example would be the sales tax calculation
>> in
>> >> > the
>> >> > leasing app I worked on.  That was very important, it was a global
>> >> > requirement with some important exceptions.  But I think your
>> approach
>> >> > would
>> >> > have worked there as well.
>> >>
>> >> Same ideas apply.
>> >>
>> >> Pat
>> >>
>> >> p.s. I didn't realize you were also the author of the other thread I
>> >> linked to :)
>> >> _______________________________________________
>> >> rspec-users mailing list
>> >> rspec-users at rubyforge.org
>> >> http://rubyforge.org/mailman/listinfo/rspec-users
>> >
>> >
>> > _______________________________________________
>> > rspec-users mailing list
>> > rspec-users at rubyforge.org
>> > http://rubyforge.org/mailman/listinfo/rspec-users
>> >
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20090108/4a7b6bcd/attachment.html>


More information about the rspec-users mailing list