我在 Rails 中有以下课程,并且正在编写一些 rspec 测试(任何批评都非常受欢迎,因为我是 rspec 的 noOOb)。
类用户.rb
class User < ActiveRecord::Base
email_regex = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
validates :email, :presence => true ,
:format => { :with => email_regex },
:uniqueness => { :case_sensitive => true },
:on => :create
end
在 factory.rb 中
FactoryGirl.define do
factory :user do
sequence(:name) { |n| "my-name#{n}" }
sequence(:email) { |n| "blue#{n}@12blue.com" }
end
end
在我的 rspec (users_spec.rb) 中:
require 'spec_helper'
describe User do
let(:user) { FactoryGirl.build(:user) }
it { user.should be_valid }
it { user.should be_a(User) }
it { user.should respond_to(:email) }
it { user.email = " " }
it { user.should_not be_valid } # this is causing the error
end
并得到
1) User
Failure/Error: it { user.should_not be_valid }
expected valid? to return false, got true
但是根据验证,用户应该是无效的。这里发生了什么?我没有得到什么(我知道这是我的错)?
谢谢