我是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')