Ruby on rails RoR静态页面帮助页面的标题应为';帮助';
我正在学习Michael Hartl的Ruby on Rails教程,我正在做第5章的练习。有人能解释一下为什么这次考试不及格吗 我的路线.rbRuby on rails RoR静态页面帮助页面的标题应为';帮助';,ruby-on-rails,ruby,ruby-on-rails-4,rspec,Ruby On Rails,Ruby,Ruby On Rails 4,Rspec,我正在学习Michael Hartl的Ruby on Rails教程,我正在做第5章的练习。有人能解释一下为什么这次考试不及格吗 我的路线.rb SampleApp::Application.routes.draw do root 'static_pages#home' match '/help', to: 'static_pages#help', via: 'get' match '/about', to: 'static_pages#about', via:
SampleApp::Application.routes.draw do
root 'static_pages#home'
match '/help', to: 'static_pages#help', via: 'get'
match '/about', to: 'static_pages#about', via: 'get'
match '/contact', to: 'static_pages#contact', via: 'get
end
我的静态页面\u spec.rb
require 'spec_helper'
describe "Static pages" do
let(:base_title) { "Ruby on Rails Tutorial Sample App" }
describe "Home page" do
it "should have the h1 'Sample App'" do
visit root_path
expect(page).to have_content('Sample App')
end
it "should have the base title" do
visit root_path
expect(page).to have_title("Ruby on Rails Tutorial Sample App")
end
it "should not have a custom page title" do
visit root_path
expect(page).not_to have_title('| Home')
end
end
describe "Help page" do
it "should have the h1 'Help'" do
visit help_path
expect(page).to have_content('Help')
end
it "should have the title 'Help'" do
visit help_path
expect(page).to have_title("Ruby on Rails Tutorial Sample App | Help")
end
end
describe "About page" do
it "should have the h1 'About Us'" do
visit about_path
expect(page).to have_content('About Us')
end
it "should have the title 'About Us'" do
visit about_path
expect(page).to have_title("Ruby on Rails Tutorial Sample App | About Us")
end
end
describe "Contact page" do
it "should have the content 'Contact'" do
visit contact_path
expect(page).to have_content('Contact')
end
it "should have the title 'Contact'" do
visit contact_path
expect(page).to have_title("Ruby on Rails Tutorial Sample App | Contact")
end
end
end
我的测试:
gvyntyk@gvyntyk-r60:~/rails\u projects/sample\u app$rspec spec/requests/static\u pages\u spec.rb
……F……F
Failures:
1) Static pages Help page should have the title 'Help'
Failure/Error: expect(page).to have_title("Ruby on Rails Tutorial Sample App | Help")
expected #has_title?("Ruby on Rails Tutorial Sample App | Help") to return true, got false
# ./spec/requests/static_pages_spec.rb:34:in `block (3 levels) in <top (required)>'
2) Static pages About page should have the title 'About Us'
Failure/Error: expect(page).to have_title("Ruby on Rails Tutorial Sample App | About Us")
expected #has_title?("Ruby on Rails Tutorial Sample App | About Us") to return true, got false
# ./spec/requests/static_pages_spec.rb:47:in `block (3 levels) in <top (required)>'
Finished in 0.67805 seconds
9 examples, 2 failures
Failed examples:
rspec ./spec/requests/static_pages_spec.rb:32 # Static pages Help page should have the title 'Help'
rspec ./spec/requests/static_pages_spec.rb:45 # Static pages About page should have the title 'About Us'
看起来您的测试很好,所以您的测试可能失败了,因为标题实际上没有正确设置 我想您只需要在视图中添加以下内容:
<% provide(:title, 'Title') %>
或者确保您发送的标题与您测试的标题相同。如果没有查看代码,我们无法查看您是否真的访问此页面。试着查看服务器控制台,看看是否有302错误。我没有得到302错误,我添加了日志服务器,我可以打开/about和/help页面。但我不确定它是否正常工作并通过了测试。这可能是因为您的标题实际上没有在视图中设置吗?是的。。。我没有在适当的文件中添加和。谢谢,伙计们。酷,我正确地回答了下面的问题。顺便说一句。。。为什么我们需要使用跌落试验?我现在不明白。只需检查一下测试是否完全有效?当使用TDD(测试驱动开发)时,我们在通过测试(绿色)之前先编写失败的测试(红色),因为这样我们就更有信心测试正确的东西。如果我们看到测试以我们期望的方式失败,我们可以相当肯定我们的测试正在工作。您不必先测试(TDD),但它通常被认为是Ruby社区的最佳实践。哈特尔对何时进行测试有一个旁白:我希望这回答了你的问题。如果我误解了你的要求,请告诉我。另外,我注意到你是新来的。如果您认为此答案有帮助,可以将其标记为已接受的答案。了解更多有关接受StackOverflow答案的信息:谢谢,本杰明,我了解坠落测试。至少我这么认为:)。我认为这种练习会帮助我更多更好地理解。
<% provide(:title, 'Title') %>