2017-11-09 4 views
6

私はRSpecの初心者です。私はモデルteacherそのhas_many :lessonsを持っています。関連するレコードが存在するかどうかを確認するRSpecを書くにはどうすればいいですか?

スペック/工場/ lessons.rb

FactoryGirl.define do 
    factory :lesson do 
    title "Rspec test" 
    description "test description" 
    company_name "narola pvt" 
    association :teacher 
    location "Zwanenplein 34" 
    days_to_pay 2 
    end 
end 

スペック/工場/ teachers.rb

FactoryGirl.define do 
    factory :teacher do 
    first_name "Teacher's name" 
    last_name "Teacher's last name" 
    address "los angeles" 
    city "california" 
    zip_code "12345" 
    country "USA" 
    birthdate nil 
    phone nil 
    password "password" 
    email { "example#{SecureRandom.uuid}@email.dummy" } 
    end 
end 

次のモデルのテストと私の試みです:

はここに私のFactoryGirlsレコードであります仕様/モデル/ teacher_spec.rb

require 'rails_helper' 

RSpec.describe Teacher, type: :model do 
    let(:teacher) { FactoryGirl.create(:teacher) } 

    it "should have at least one lesson" do 
    config.expect_with(Lesson.where(teacher_id: teacher)){|c| c.syntax = :should} 
    end 
end 

私は、特定のレッスンにレッスンが存在するかどうかを見つけるためにrspecテストケースを作成します。どんな助けもありがとう。また、詳細が必要な場合は、私に知らせてください。

ありがとうございます。

答えて

4

これを試してください:

it "should have at least one lesson" do 
    expect(Lesson.where(teacher_id: teacher.id)).to exist  
end 

はそれがあなたのために働くなら、私に教えてください。私はこれを試していない。

+1

ご協力いただきありがとうございます。それは私のために働いた。そして私もそれを次のように試してみました。 :) 'expect(teacher.lessons).to be_present' – Vishal

関連する問題