Próbuję utworzyć test kontrolera RSpec dla kontrolera z określonymi nazwami, ale rspec nie jest w stanie wykryć zagnieżdżenia i wygenerować poprawną ścieżkę dla akcji post :create
.Test kontrolera RSpec nie generuje poprawnego adresu URL
To jest mój kod 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
W tym kodzie get :index
działa dobrze, ale gdy post :create
nazywa się następujący błąd jest generowany: undefined method 'crm_report_adjustment_url'
Dlaczego RSpec być wystarczająco inteligentny wymyślić rzeczy z get :index
, ale nie z post :create
? Jak uzyskać RSPec, aby poprawnie załadować właściwą trasę, która jest admin_crm_report_adjustments_url
?
Z góry dziękuję.
zarówno ': GET' i': Post' powinny być traktowane tak samo. spójrz na 'process', który obsługuje żądania: http://apidock.com/rails/v3.2.13/ActionController/TestCase/Behavior/process Możesz spróbować debugować go w swojej aplikacji za pomocą podważenia, debuggera lub umieszcza – phoet
Mam ten sam problem, czy znalazłeś rozwiązanie @roflmao? – dwhite