Rspec Mock / Stub测试栏加入关联添加/删除

时间:2016-02-24 05:32:04

标签: ruby-on-rails rspec mocking stubbing

我是Mock / Stub的新手,在我的Grape API中,我有以下逻辑,我将@course添加到连接关联

helpers do
  def fetch_site
    unless current_organisation
      error!("401 Unauthorized", 401)
    end
    @site = current_organisation.sites.find(params[:site_id])
  end

  def fetch_certification_course
    @course = Ihub::CertificationCourse.find(params[:certification_course_id])
  end
end


  post do
    fetch_site
    fetch_certification_course
    @site.certification_courses << @course
    present @site.certification_courses, with: Entities::CertificationCourse
  end

在网站模型中,我有以下关系

has_many :site_certifications, class_name: 'Ihub::SiteCertification'
has_many :certification_courses, through: :site_certifications

如何使用Mock / stub正确测试此API?特别是这部分&#34; @ site.certification_courses&lt;&lt; @当然&#34;

这是我为删除加入关联所做的事情

要测试的代码

    @site.certification_courses.delete(certification_course)

测试

  @site = stub_model(Site)
  expect(@site).to receive_message_chain('certification_courses.delete')

0 个答案:

没有答案