#ruby-on-rails #ruby #ruby-on-rails-3 #rspec #routing
#ruby-on-rails #ruby #ruby-on-rails-3 #rspec #маршрутизация
Вопрос:
Я пытаюсь написать тест контроллера, а Rspec не находит маршруты, которые, как я знаю, существуют и нормально работают на сервере разработки.
В моих маршрутах у меня есть универсальный маршрут, который должен перенаправляться на общий контроллер, если кто-то переходит на маршрут, который не предопределен.
routes.rb
namespace :tools do
match '*unmatchedpath' => "generic#show", :via => :get
end
generic_controller.rb
def show
# do stuff
end
generic_controller_spec.rb
require 'spec_helper'
describe Tools::GenericController do
describe 'GET show' do
it 'does stuff' do
get :show
end
end
Вот ошибка, которую я получаю от rspec при запуске теста выше
1) Tools::GenericController GET show does stuff
Failure/Error: get :show
ActionController::RoutingError:
No route matches {:controller=>"tools/generic", :action=>"show"}
Все маршруты работают должным образом на моем сервере разработки, поэтому я не уверен, почему Rspec не находит маршрут.
Комментарии:
1. Можете ли вы запустить
rake routes
и показать вывод здесь?
Ответ №1:
Попробуйте:
get '*unmatchedpath' => 'tools/generic#show'