On Mon, Aug 25, 2008 at 3:02 PM, Zach Dennis <[EMAIL PROTECTED]> wrote: > On Mon, Aug 25, 2008 at 2:50 PM, Nick Hoffman <[EMAIL PROTECTED]> wrote: >> On 2008-08-25, at 13:29, Zach Dennis wrote: >>> >>> I might do something like the following... >>> >>> describe Property, "email validations" do >>> >>> ["[EMAIL PROTECTED]", "can't start with a digit", >>> "[EMAIL PROTECTED]", "can't end with a digit" >>> ].in_groups_of(2) do |email, description| >>> it description do >>> prop = Property.new :email => email >>> prop.should_not be_valid >>> prop.should have(1).error_on(:email) >>> end >>> end >>> end >>> >>> >>> -- Zach Dennis >>> http://www.continuousthinking.com >>> http://www.mutuallyhuman.com >> >> Hi Zach. That's a great way of iterating over test data. Do you have any >> suggestions for how much test data to use? >> > > I'd probably start with the first invalid email/description that I can > think of. Perhaps it can't start with a digit. Then I'd update the > regexp to reflect that. Next I'd add a second invalid > email/description and update the regexp to reflect that. Rinse and > repeat until your regexp is where you need it.
This is nit-picky, I realize, but saying "until your regexp is where you need it" suggests that you'll know when you get there by looking at the regexp. I'd suggest that you know when you get there by looking at the code examples and feeling confident that you've covered all of the edge cases. > This should help you > not add redundant emails which test the same thing. When you get to > the case where you allow from 2 up to 128 characters, you could just > test those two edge cases (rather than emails which 2 characters, 3 > characters, 4 characters, ... 128 characters. If the boundaries are 2 and 128, I would test 1,2,3,127,128,129 - the boundary and either side of it. Might seem like overkill, but I've seen a bug or two make its way to production because the boundary wasn't clearly understood. FWIW, David > > -- > Zach Dennis > http://www.continuousthinking.com > http://www.mutuallyhuman.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