[rspec-users] How much test data to use in specs

Zach Dennis zach.dennis at gmail.com
Mon Aug 25 16:02:08 EDT 2008

On Mon, Aug 25, 2008 at 2:50 PM, Nick Hoffman <nick at deadorange.com> wrote:
> On 2008-08-25, at 13:29, Zach Dennis wrote:
>> I might do something like the following...
>> describe Property, "email validations" do
>>  ["1invalid.email at example.com", "can't start with a digit",
>>   "invalid.email2 at example.com", "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 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.

Zach Dennis

More information about the rspec-users mailing list