问题描述
所以我关于 Stackoverflow 的第一个问题..... =]
So my first question on Stackoverflow..... =]
我在 Michael Hartl 的 RoR 教程的第 5.3.2 章中的测试 都失败了,当教程说它应该通过时(教程说关于"、联系"和帮助"应该通过……但我的都失败了).到目前为止一切正常,但我改变了
My tests in Chapter 5.3.2 of Michael Hartl's RoR Tutorial are all failing, when the tutorial says it should be passing (tutorial says 'about', 'contact', and 'help' should pass... but all of mine fail). Everything til now worked fine, but I changed the
get 'static_pages/help'
到
match '/help', to: 'static_pages#help'
这样我的
SampleApp::Application.routes.draw do
root to: 'static_pages#home'
match '/help', to: 'static_pages#help'
match '/about', to: 'static_pages#about'
match '/contact', to: 'static_pages#contact'
然后一切都变成了地狱.我所有的测试都因未定义的局部变量或方法root_path"或about_path"等而失败(见下文,终端输出).但这里是我的相关文件......以防万一有人好奇,所有文件都是 Hartl 拥有的.我基本上复制并粘贴了每个文件的内容.
and then everything went to hell. All my tests fails with a undefined local variable or method 'root_path' or 'about_path' etc. (see below, Terminal Output). But here are my relevant files... Just in case anyone is curious, all the files are exactly what Hartl has. I basically copied and pasted each file's content.
有人可以帮我吗??????谢谢!
Can someone help me?????? Thanks!
require 'spec_helper'
describe "Static pages" do
describe "Home page" do
it "should have the h1 'Sample App'" do
visit root_path
page.should have_selector('h1', text: 'Sample App')
end
it "should have the base title" do
visit root_path
page.should have_selector('title',
text: "Ruby on Rails Tutorial Sample App")
end
it "should not have a custom page title" do
visit root_path
page.should_not have_selector('title', text: '| Home')
end
end
describe "Help page" do
it "should have the h1 'Help'" do
visit help_path
page.should have_selector('h1', text: 'Help')
end
it "should have the title 'Help'" do
visit help_path
page.should have_selector('title',
text: "Ruby on Rails Tutorial Sample App | Help")
end
end
describe "About page" do
it "should have the h1 'About'" do
visit about_path
page.should have_selector('h1', text: 'About Us')
end
it "should have the title 'About Us'" do
visit about_path
page.should have_selector('title',
text: "Ruby on Rails Tutorial Sample App | About Us")
end
end
describe "Contact page" do
it "should have the h1 'Contact'" do
visit contact_path
page.should have_selector('h1', text: 'Contact')
end
it "should have the title 'Contact'" do
visit contact_path
page.should have_selector('title',
text: "Ruby on Rails Tutorial Sample App | Contact")
end
end
end
输入'rspec spec/'的终端输出
FFFFFFFFF
Failures:
1) Static pages Contact page should have the h1 'Contact'
Failure/Error: visit contact_path
NameError:
undefined local variable or method `contact_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x007fd2093855f8>
# ./spec/requests/static_pages_spec.rb:55:in `block (3 levels) in <top (required)>'
2) Static pages Contact page should have the title 'Contact'
Failure/Error: visit contact_path
NameError:
undefined local variable or method `contact_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x007fd208cbeb20>
# ./spec/requests/static_pages_spec.rb:60:in `block (3 levels) in <top (required)>'
3) Static pages Help page should have the h1 'Help'
Failure/Error: visit help_path
NameError:
undefined local variable or method `help_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x007fd2094c02b0>
# ./spec/requests/static_pages_spec.rb:27:in `block (3 levels) in <top (required)>'
4) Static pages Help page should have the title 'Help'
Failure/Error: visit help_path
NameError:
undefined local variable or method `help_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x007fd209649208>
# ./spec/requests/static_pages_spec.rb:32:in `block (3 levels) in <top (required)>'
5) Static pages About page should have the h1 'About'
Failure/Error: visit about_path
NameError:
undefined local variable or method `about_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3:0x007fd208f16d00>
# ./spec/requests/static_pages_spec.rb:41:in `block (3 levels) in <top (required)>'
6) Static pages About page should have the title 'About Us'
Failure/Error: visit about_path
NameError:
undefined local variable or method `about_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3:0x007fd2094f7990>
# ./spec/requests/static_pages_spec.rb:46:in `block (3 levels) in <top (required)>'
7) Static pages Home page should not have a custom page title
Failure/Error: visit root_path
NameError:
undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fd208d30b08>
# ./spec/requests/static_pages_spec.rb:19:in `block (3 levels) in <top (required)>'
8) Static pages Home page should have the base title
Failure/Error: visit root_path
NameError:
undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fd208e0cb80>
# ./spec/requests/static_pages_spec.rb:13:in `block (3 levels) in <top (required)>'
9) Static pages Home page should have the h1 'Sample App'
Failure/Error: visit root_path
NameError:
undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007fd209607268>
# ./spec/requests/static_pages_spec.rb:8:in `block (3 levels) in <top (required)>'
Finished in 0.30216 seconds
9 examples, 9 failures
Failed examples:
rspec ./spec/requests/static_pages_spec.rb:54 # Static pages Contact page should have the h1 'Contact'
rspec ./spec/requests/static_pages_spec.rb:59 # Static pages Contact page should have the title 'Contact'
rspec ./spec/requests/static_pages_spec.rb:26 # Static pages Help page should have the h1 'Help'
rspec ./spec/requests/static_pages_spec.rb:31 # Static pages Help page should have the title 'Help'
rspec ./spec/requests/static_pages_spec.rb:40 # Static pages About page should have the h1 'About'
rspec ./spec/requests/static_pages_spec.rb:45 # Static pages About page should have the title 'About Us'
rspec ./spec/requests/static_pages_spec.rb:18 # Static pages Home page should not have a custom page title
rspec ./spec/requests/static_pages_spec.rb:12 # Static pages Home page should have the base title
rspec ./spec/requests/static_pages_spec.rb:7 # Static pages Home page should have the h1 'Sample App'
推荐答案
Mischa 的回答有望解决大部分问题,但您的测试可能仍会在 root_path 问题上失败.
Mischa's answer will hopefully fix most of those problems, but your tests may still fail on the root_path issue.
你有没有像这样删除 index.html:git rm public/index.html
Have you removed index.html like so: git rm public/index.html
并且不要忘记提交您的更改:git commit -am "Message"
And don't forget to commit your changes with: git commit -am "Message"
这篇关于未定义的局部变量或方法 `root_path' Hartl's Tutorial Chapter 5.3.2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!