Я продолжаю получать ошибку маршрутизации при тестировании приложения Rails 3.0 с помощью Rspec 3. Он не может определить маршрут, который я использую для моего запроса на получение. Вот что мои файлы выглядеть следующим образом:Rspec не может найти маршрут в контрольном тесте
routes.rb
resources :proficiency_tests do
member do
resource :lag_components, only: [:edit, :update]
end
end
работает грабли: маршруты возвращается:
edit_lag_components GET /proficiency_tests/:id/lag_components/edit(.:format) {:action=>"edit", :controller=>"lag_components"}
lag_components PUT /proficiency_tests/:id/lag_components(.:format) {:action=>"update", :controller=>"lag_components"}
контроллер находится в:
app
|---controllers
|---lag_components_controller.rb
Ничего особенного о том, контроллер настроен.
спецификации в:
spec
|---controllers
|---lag_components_controller.rb
тесты настроены так:
требуют 'spec_helper'
describe LagSubmissionsController do
describe 'GET #edit' do
let(:proficiency_test) { create :proficiency_test }
it 'redirects' do
*tests*
end
end
end
Вот что я пытался, и какие сообщения об ошибках были :
get(:edit, id: proficiency_test.id)
# => No route matches {:id=>11259, :controller=>"lag_submissions", :action=>"edit"}
get(:edit, id: proficiency_test.id, use_route: :edit_lag_components)
# => No route matches {:id=>11260, :controller=>"lag_submissions", :action=>"edit"}
get("/proficiency_tests/#{proficiency_test.id}/lag_components/edit")
# => No route matches {:controller=>"lag_submissions", :action=>"/proficiency_tests/11258/lag_components/edit"}
Последний является особенно интригующим, потому что это точный маршрут я использую в браузере для визуализации edit
страницы:
Кто-нибудь знает, что происходит и почему она не может найти этот маршрут? К сожалению, это старое приложение, и я не могу изменить маршруты.
Вы пишете rspec для неправильного контроллера –