5
名前空間コントローラのRSpecコントローラテストを作成しようとしていますが、rspecがネストを検出して、post :create
アクションの正しいパスを生成できないようです。RSpecコントローラテストで正しいURLが生成されない
これは私のスペックコードです:このコードの場合
# for: /app/controllers/admin/crm/report_adjustments_controller.rb
require 'spec_helper'
describe Admin::Crm::ReportAdjustmentsController do
render_views
before(:each) do
signin
end
describe "GET 'index'" do
it "returns http success" do
get :index
response.should be_success
end
end
describe "POST 'create'" do
it "creates with right parameters" do
expect {
post :create, report_adjustment: {distributor_id: @ole_distributor.id, amount: "30.0", date: Date.today }
}.to change(Crm::ReportAdjustment, :count).by(1)
response.should be_success
end
end
end
# routes.rb
namespace :admin do
namespace :crm do
resources :report_adjustments
end
end
、うまくget :index
作品が、post :create
が呼び出されたときに、次のエラーが生成されます。undefined method 'crm_report_adjustment_url'
なぜRSpecのは十分にスマートになりますget :index
で問題を把握することはできますが、post :create
では解決できません。 RSpecに適切なルートが正しくロードされるようにするにはどうすればいいですか?admin_crm_report_adjustments_url
?
ありがとうございます。代わりに、URLに
両方 ':GET'と':POST'が同じに扱われるべきです。リクエストのものを処理する 'process'を見てください:http://apidock.com/rails/v3.2.13/ActionController/TestCase/Behavior/processあなたはアプリケーションでそれをデバッグしようとする可能性があります、デバッガまたはputs – phoet
私は同じ問題を抱えています。解決策は@roflmaoですか? – dwhite