rspec テストが失敗する理由を突き止めようとしています。最も注目すべきは、矛盾しているように見える失敗メッセージです。私は ActiveRecord::RecordInvalid エラーがあり、それはまさに私が主張していることです。
これが私のuser.rbです
...
validates_presence_of :email
...
ここに私のusers_spec.rbがあります
...
it "is invalid without email" do
Factory(:user, email: nil).should raise_error(ActiveRecord::RecordInvalid)
end
...
出力は次のとおりです。
Failures:
1) User a user (in general) is invalid without email
Failure/Error: Factory(:user, email: nil).should raise_error(ActiveRecord::RecordInvalid)
ActiveRecord::RecordInvalid:
Validation failed: Email is invalid, Email can't be blank
# ./spec/models/user_spec.rb:34:in `block (3 levels) in <top (required)>'
もともと私はこの方法でテストしていましたが、失敗し続けたので、予想されるエラーを特定することにしました。
it "is invalid without email" do
Factory(:user, email: nil).should_not be_valid
end