2017-11-09 26 views
6

Tôi là người mới đến RSpec. Tôi đang có một mô hình teacher rằng has_many :lessons. Dưới đây là FactoryGirls hồ sơ của tôi:Cách viết RSpec để kiểm tra xem bản ghi liên quan có tồn tại không?

đặc tả/nhà máy/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 

đặc tả/nhà máy/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 

Sau đây là cố gắng của tôi với các mô hình thử nghiệm:

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 

Tôi sẵn sàng viết một trường hợp kiểm tra rspec để tìm xem bài học có tồn tại cho bài học cụ thể không. Bất kỳ trợ giúp sẽ được đánh giá cao. Ngoài ra nếu bạn cần thêm bất kỳ chi tiết nào, vui lòng cho tôi biết.

Xin cảm ơn trước.

Trả lời

4

Vui lòng thử này:

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

Hãy cho tôi biết nếu nó làm việc cho bạn. Tôi đã không thử điều này.

+1

Cảm ơn bạn rất nhiều vì những nỗ lực của bạn. Nó làm việc cho tôi. Và tôi cũng đã thử nó theo cách, và nó đã làm việc. :) 'mong đợi (teacher.lessons) .to be_present' – Vishal

Các vấn đề liên quan