Rspec не находит существующие маршруты

#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'