2017-11-09 115 views
6

Ben RSpec için yeni biriyim. has_many :lessons numaralı teacher modelini kullanıyorum.İlişkili kaydın olup olmadığını kontrol etmek için RSpec nasıl yazılır?

Spec/fabrikalar/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 

Spec/fabrikalar/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 

ardından modelleri testi ile benim denemede:

İşte benim FactoryGirls kayıtları olduğunu spec/models/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 

Belirli bir ders için ders olup olmadığını bulmak için bir rspec test vakası yazmaya hazırım. Herhangi bir yardım takdir edilecektir. Daha fazla ayrıntıya ihtiyacınız varsa, lütfen bana bildirin.

Şimdiden teşekkürler.

cevap

4

bu deneyin:

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

o iş sizin için uygun olursa haber verin. Ben bunu denemedim.

+1

Çabalarınız için çok teşekkür ederim. Benim için çalıştı. Ve ben de bunu takip ettim ve işe yaradı. :) "bekliyoruz (öğretmen.olonlar). – Vishal