On Feb 12, 2009, at 1:03 PM, Nick Hoffman <[email protected]> wrote:
Does RSpec automatically call #valid? on ActiveRecord models?
For instance, when this example is run:
it 'should reject a nil value' do
@form = TimeShiftForm.new :file => nil
puts "@form.errors.count = <<#[email protected]}>>"
@form.should have(1).error_on :file
This matcher, have(1).error_on, does call #valid.
puts "@form.errors.count = <<#[email protected]}>>"
end
This is printed:
@form.errors.count = <<0>>
@form.errors.count = <<1>>
However, I never called @form.valid? , which leads me to believe
that RSpec called it for me.
In this case, yes, because the matcher needs that.
If RSpec does in fact call #valid? automatically, should we refrain
from manually calling #valid?
The fact that you are asking this shows that we're violating the
principle of least surprise. We could make it so it doesn't validate,
but that would pit the onus on users to validate explicitly (not to
mention the upgrade burden).
Thoughts?
David
-Nick
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users