我正在爲Cookbook
模型編寫帶RSpec的模型測試。每個用戶has_many
食譜,以及每個食譜belongs_to
的用戶。爲了確保一個Cookbook
不能沒有用戶創建,我寫了下面的測試:Rails RSpec測試不能正確傳遞
it "is invalid without a user" do
expect(FactoryGirl.build(:cookbook, user: nil)).to be_invalid
end
但是,運行rspec
的時候,我得到下面的輸出:
1) Cookbook is invalid without a user
Failure/Error: expect(FactoryGirl.build(:cookbook, user: nil)).to be_invalid
NoMethodError:
undefined method `cookbooks' for nil:NilClass
這樣,那麼,以測試的錯誤被升高,我了這樣的試驗:
it "is invalid without a user" do
expect{FactoryGirl.build(:cookbook, user: nil)}.to raise_error(NoMethodError)
end
然而,該測試也失敗,並輸出如下:
1) Cookbook is invalid without a user
Failure/Error: expect{FactoryGirl.build(:cookbook, user: nil)}.to raise_error(NoMethodError)
expected NoMethodError but nothing was raised
如果這意味着什麼,這裏是工廠的食譜:
require 'faker'
FactoryGirl.define do
factory :cookbook do |f|
f.title "#{Faker::Name.first_name}'s recipes"
f.description "#{Faker::Name.last_name}'s favorite recipes."
f.user 1
end
end
我應該如何去寫的模型試驗,以便它可以確保用戶需要創建Cookbook
什麼時候?
請發佈您的Cookbook課程 –