Rspec rails api控制器索引测试
问题描述:
我试图用rspec测试一个api控制器动作,但是由于我对rspec很新,我不能使它工作。 我有以下索引操作:渲染json:@ website.jobsRspec rails api控制器索引测试
我必须按名称查找所有与网站相关联的作业。这是我的规格:
let(:endpoint) { FactoryGirl.create(:website) }
let(:job) { FactoryGirl.create(:job) }
subject do
get :index, params: { format: :json,
name: endpoint.name }
end
expect(subject.body).to include(:job)
我做错了什么,或者我错过了什么?
答
您无法直接用JSON
响应检查对象。你可以做这样的事情:
it "response with JSON body containing expected jobs" do
hash_body = JSON.parse(response.body)
expect(hash_body).first.to match({
id: job.id,
title: job.title
})
end
您需要根据您的Job
模型来更改属性。
一个很好的教程使用Rspec的测试JSON:Pure RSpec JSON API testing
希望这有助于。
如果不是OP,帮助我! +1为教程 – Mark
不知道我是否解释它,或理解错误。我不需要先将工作分配给网站吗?所以我可以为该网站提出请求,输出应该是指定的工作。然后输出为json格式。 – Slavi
所以你可以这样做:'FactoryGirl.create(:job,website:website)',你需要在工厂中定义'website'属性 – Deep