Я пытаюсь написать некоторые спецификации маршрутизации для монтируемого рельса 3.1. У меня есть рабочая модель и спецификации контроллера, но я не могу понять, как указать маршруты.
Для модели с образцом "testy" каждый мой подход заканчивается той же ошибкой:
ActionController::RoutingError: No route matches "/testy"
Я пробовал синтаксис Rspec и Test:: Unit (spec/routing/index_routing_spec.rb):
describe "test controller routing" do
it "Routs the root to the test controller index action" do
{ :get => '/testy/' }.should route_to(:controller => 'test', :action => 'index')
end
it "tries the same thing using Test::Unit syntax" do
assert_routing({:method => :get, :path => '/testy/', :use_route => :testy}, {:controller => 'test', :action => 'index'})
end
end
Я правильно расписал маршруты (config/routes.rb):
Testy::Engine.routes.draw do
root :to => 'test#index'
end
И установили их в фиктивном приложении (spec/dummy/config/routes.rb):
Rails.application.routes.draw do
mount Testy::Engine => "/testy"
end
И работает rails server
и запрашивает http://localhost:3000/testy/
работает отлично.
Я пропустил что-нибудь очевидное, или это просто неправильно испечено в рамки?
Обновление: Как отмечает @andrerobot, люди rspec исправили эту проблему в версии 2.14, поэтому я изменил принятый ответ соответственно.