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
それが何を意味している場合、ここでの料理のための工場です:Cookbook
を作成するとき、それは必ず、ユーザが必要とされますように
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
にはどうすればモデルのテストを書くことについては行くべき?
クックブッククラスを投稿してください –