2017-08-01 18 views
0

私はrspecでAPIコントローラの動作をテストしようとしていますが、私はrspecにはかなり新しいので、動作させることはできません。 私は以下のインデックスアクションを持っています:render 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) 

私は何か間違っている、または何かが不足していますか?

答えて

1

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

・ホープ、このことができます。

+0

OPでない場合は助けてください!チュートリアルの+1 – Mark

+0

私はそれを説明しているか間違っているかどうかは分かりません。最初にウェブサイトに仕事を割り当てる必要はありませんか?だから私はそのウェブサイトの要求を行うことができ、出力は割り当てられた仕事でなければならない。その後、すべてがjson形式に出力されました。 – Slavi

+0

こうすることができます: 'FactoryGirl.create(:job、website:website)' '工場で' website'属性を定義する必要があります – Deep

関連する問題