2017-11-09 2 views
6

Ich bin ein Neuling für RSpec. Ich habe ein Modell teacher, dass has_many :lessons. Hier ist meine FactoryGirls Datensätze:Wie schreibt man RSpec, um zu prüfen, ob der zugehörige Datensatz existiert?

spec/Fabriken/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/Fabriken/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 

Es folgt mein Versuch mit Modellen Test:

Spezifikation/Modelle/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 

Ich bin bereit, einen rspec-Testfall zu schreiben, um herauszufinden, ob es für eine bestimmte Lektion eine Lektion gibt. Jede Hilfe wird geschätzt. Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.

Vielen Dank im Voraus.

Antwort

4

Bitte versuchen Sie dies:

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

Lassen Sie mich wissen, ob es Arbeit für Sie. Ich habe das nicht versucht.

+1

Vielen Dank für Ihre Bemühungen. Es hat für mich funktioniert. Und ich habe es auch auf folgende Weise versucht, und es hat funktioniert. :) 'expect (teacher.lessons) .to be_present' – Vishal

Verwandte Themen