Я пытаюсь протестировать движок Rails 3.1 с RSpec 2. После большого количества проб и ошибок (и документации, и поиска переполнения стека) приложение работает, и я получил большинство спецификаций для прохождения.Проблема в том, что мои спецификации маршрутов все еще не работают.
Для движка "foo" с изолированным пространством имен и контроллера Foo :: BarsController у меня есть это:
require "spec_helper"
describe Foo::BarsController do
describe "routing" do
it "routes to #index" do
get("/foo/bars").should route_to("bars#index")
end
it "routes to #new" do
get("/foo/bars/new").should route_to("bars#new")
end
end
end
Это приводитin:
1) Foo::BarsController routing routes to #index
Failure/Error: get("/foo/bars").should route_to("bars#index")
ActionController::RoutingError:
No route matches "/foo/bars"
# ./spec/routing/foo/bars_routing_spec.rb:6:in `block (3 levels) in <top (required)>'
2) Foo::BarsController routing routes to #new
Failure/Error: get("/foo/bars/new").should route_to("bars#new")
ActionController::RoutingError:
No route matches "/foo/bars/new"
# ./spec/routing/foo/bars_routing_spec.rb:10:in `block (3 levels) in <top (required)>'
Мое фиктивное приложение для спецификаций, похоже, настроено правильно:
Rails.application.routes.draw do
mount Foo::Engine => "/foo"
end
Если это поможет ответить на этот вопрос, мои спецификации просмотра также не работают.Вот типичная ошибка:
9) foo/bars/index.html.erb renders a list of bars
Failure/Error: render
ActionView::Template::Error:
undefined local variable or method `new_bar_path' for #<#<Class:0x00000100c14958>:0x0000010464ceb8>
# ./app/views/foo/bars/index.html.erb:3:in `___sers_matt__ites_foo_app_views_foo_bars_index_html_erb___1743631507081160226_2184232780'
# ./spec/views/foo/bars/index.html.erb_spec.rb:12:in `block (2 levels) in <top (required)>'
Есть идеи?