Ich versuche einen RSpec-Controller-Test für einen Namespace-Controller zu erstellen, aber rspec scheint nicht in der Lage zu sein, die Verschachtelung zu erkennen und den richtigen Pfad für die Aktion post :create
zu generieren.RSpec-Controller Test erzeugt keine richtige URL
Das ist mein spec Code:
# 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
Für diesen Code, der get :index
funktioniert gut, aber wenn post :create
aufgerufen wird, wird der folgende Fehler generiert: undefined method 'crm_report_adjustment_url'
Warum RSpec intelligent genug sein würde Dinge mit get :index
herauszufinden, aber nicht mit post :create
? Wie bekomme ich RSpec, um die richtige Route richtig zu laden, die admin_crm_report_adjustments_url
ist?
Vielen Dank im Voraus.
beide ': get' und': Post' sollten gleich behandelt werden. Sehen Sie sich 'process' an, das die Anfrage stuff behandelt: http://apidock.com/rails/v3.2.13/ActionController/TestCase/Behavior/process Sie könnten versuchen, es in Ihrer Anwendung zu debuggen, indem Sie py, debugger oder puts verwenden – phoet
Ich habe das gleiche Problem, hast du die Lösung @roflmao gefunden? – dwhite