0

統合テストが行​​うことは、ショー購入ページを開き、購入ページをクリック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 + '?' %>
4

0 に答える 0