У меня такая же проблема. В конце главы 5 все тесты из / spec / запросы / layout_links_spec.rb завершаются с той же ошибкой (тесты контроллера работают нормально):
Failure/Error: Unable to find matching line from backtrace
stack level too deep
# C:/Ruby192/lib/ruby/1.9.1/forwardable.rb:185
После небольшого устранения неполадок в файле / spec / запросы / layout_links_spec.rb выясняется, что использование response
в этом контексте и вызывает проблему. Например, нет ошибки, если файл выглядит следующим образом:
require 'spec_helper'
describe "LayoutLinks" do
it "should run tests properly from this file" do
get '/'
end
end
Но файл, скопированный из учебника, гласит:
require 'spec_helper'
describe "LayoutLinks" do
it "should have a Home page at '/'" do
get '/'
response.should have_selector('title', :content => "Home")
end
it "should have a Contact page at '/contact'" do
get '/contact'
response.should have_selector('title', :content => "Contact")
end
it "should have an About page at '/about'" do
get '/about'
response.should have_selector('title', :content => "About")
end
it "should have a Help page at '/help'" do
get '/help'
response.should have_selector('title', :content => "Help")
end
end
Ошибка выдается, как только response
называется
Это на Windows 7 (я пытался настроить Ruby, Git, Vim и другие инструменты разработки на системном уровне, а не в Cygwin).
Rspeicher - после шагов RailsTutorial.org файл / config / rout.rb выглядит примерно так:
SampleApp::Application.routes.draw do
get "users/new"
match '/signup', :to => 'users#new'
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
root :to => 'pages#home'
end
Как говорит Арун, все это работает так, как задумано в браузере, поэтому проблема, кажется, где-то внутри rspec или ruby. Я полагаю, это не проблема, если ruby установлен под Cygwin. Я надеялся, что мне не придется возвращаться к чистой среде Cygwin, тем более что мои файлы webroot и проекта уже управляются вне виртуальной структуры папок Unix Cygwin.