統合テストが行うことは、ショー購入ページを開き、購入ページをクリックApprove
することです。rspecの場合は次のとおりです。
it "should display the approve page" do
proj = FactoryGirl.create(:project)
pur = FactoryGirl.create(:purchasing, :project_id => proj.id)
visit project_purchasing_path(proj, pur)
response.should have_selector("a", :href => approve_project_purchasing_path(proj, pur), :content => "Approve")
click_link 'Approve'
end
最後の行は、ページにリンクがあることを確認しclick_link 'Approve'
ただけでも、以下のエラーを引き起こします。response
'Approve'
ActionController::RoutingError:←[0m
←[31mNo route matches [GET] "/projects/1/purchasings/1/approve"
出力rake routes
には、パスapprove_project_purchasing_pathがあります。
approve_project_purchasing PUT /projects/:project_id/purchasings/:id/approve(.:format)
をクリックしても、コードの実行にエラーはありません'Approve'
。
rspecコードの何が問題になっていますか?助けてくれてありがとう。
更新:ここにありlink_to
ますApprove
:
<%= link_to 'Approve', approve_project_purchasing_path(@project, @purchasing), :method => :put, :id => 'purchasing_need_approve', :confirm => 'Approve' + @purchasing.prod_name + '?' %>