[rspec-users] Constraints / Global requirements

Pat Maddox pergesu at gmail.com
Wed Jan 7 21:09:02 EST 2009


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
>


More information about the rspec-users mailing list