Как протестировать маршруты в монтируемом движке Rails 3.1

Я пытаюсь написать некоторые спецификации маршрутизации для двигателя с монтируемыми рельсами 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's 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, поэтому я изменил свой принятый ответ соответствующим образом.

20
задан Cameron Pope 11 July 2013 в 22:07
поделиться