2013-06-04 14 views
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に

+1

両方 ':GET'と':POST'が同じに扱われるべきです。リクエストのものを処理する 'process'を見てください:http://apidock.com/rails/v3.2.13/ActionController/TestCase/Behavior/processあなたはアプリケーションでそれをデバッグしようとする可能性があります、デバッガまたはputs – phoet

+0

私は同じ問題を抱えています。解決策は@roflmaoですか? – dwhite

答えて

1

てみてください投稿:

post admin_crm_report_adjustments_url 

# or 

post "/admin/crm/report_adjustments" 
関連する問題