试图找出我的 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