Sto tentando di creare un test del controller RSpec per un controller con spazio dei nomi, ma rspec non sembra in grado di rilevare l'annidamento e generare il percorso corretto per l'azione post :create
.RSpec Test del controller che non genera l'url corretto
Questo è il mio codice spec:
# 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
Per questo codice, il get :index
funziona bene, ma quando post :create
si chiama, viene generato il seguente errore: undefined method 'crm_report_adjustment_url'
Perché RSpec essere abbastanza intelligente per capire le cose con get :index
, ma non con post :create
? Come faccio a ottenere RSpec per caricare correttamente il percorso giusto, che è admin_crm_report_adjustments_url
?
Grazie in anticipo.
sia ': GET' e': posto d'dovrebbe essere gestito lo stesso. dare un'occhiata a 'process' che gestisce la richiesta: http://apidock.com/rails/v3.2.13/ActionController/TestCase/Behavior/process si potrebbe provare a eseguire il debug dell'applicazione utilizzando la leva, debugger o puts – phoet
Sto avendo lo stesso problema, hai trovato la soluzione @roflmao? – dwhite