2014-05-07 65 views
0

我的模型驗證,如:爲什麼我的RSpec的測試通過時,我的模型驗證失敗,因爲它應該

# Account Model 
    validates :email, presence: true 
    validates :password, presence: true 

所以我創建了一個factory_girl這個模型有一個像空值:

factory :account do 
    end 

trait :empty do 
    email "" 
    password "" 
    end 

所以我的測試看起來像:

it "doesn't allow empty fields" do 
    account = create(:account, :empty) 
    account.should_not be_valid 
end 

所以我說,這個模型中,與空字段,應該失敗validat與「should_not」離子。

然而,當我運行RSpec的我得到這個錯誤:

Validation failed: Email can't be blank, Password can't be blank 
    # ./spec/models/account_spec.rb:29:in `block (3 levels) in <top (required)>' 

什麼是我的測試問題?

+1

嘗試'account = build(:account,:empty)'這個不保存到db –

回答

4

RSpec的錯誤來源於此行account = create(:account, :empty),沒有這一條account.should_not be_valid

create將嘗試在數據庫中創建記錄,並經過驗證。使用build代替

相關問題