我是一个全新的人,我正在学习Ruby on Rails和Michael Hartl的教程。我在第3章,关于页面的Rspec测试失败了(而完全相同的测试并没有失败的主页和帮助页面。)
运行$ bundle exec rspec spec/requests/static_pages_spec.rb
时遇到的错误是:
Failures:
1) Static pages About page should have the content 'About Us'←[31mFailure/Error:←[0m ←[31mvisit 'static_pages/about'←[0m←[31mURI::InvalidURIError←[0m:←[31mthe scheme http does not accept registry part: www.example.com:80static_pages (or bad hostname?)←[0m←[36m # ./spec/requests/static_pages_spec.rb:24:in `block (3 levels) in <top (required)>'←[0m Finished in 0.0776 seconds←[31m3 examples, 1 failure←[0m
Failed examples:
←[31mrspec ./spec/requests/static_pages_spec.rb:23←[0m ←[36m# Static pages About page should have the content 'About Us'←[0m
当访问http://localhost:3000/static_pages/about
页面加载时,我可以看到大H1字母中的“关于我们”。
规格/请求/ static_pages_spec.rb:
require 'spec_helper'
describe "Static pages" do
describe "Home page" do
it "should have the content 'Sample App'" do
visit '/static_pages/home'
expect(page).to have_content('Sample App')
end
end
describe "Help page" do
it "should have the content 'Help'" do
visit '/static_pages/help'
expect(page).to have_content('Help')
end
end
describe "About page" do
it "should have the content 'About Us'" do
visit 'static_pages/about'
expect(page).to have_content('About Us')
end
end
end
配置/ routes.rb中:
SampleApp::Application.routes.draw do
get "static_pages/home"
get "static_pages/help"
get "static_pages/about"
end
应用/控制器/ static_pages_controller.rb:
class StaticPagesController < ApplicationController
def home
end
def help
end
def about
end
end
应用/视图/ about.html.erb:
<h1>About Us</h1>
<p>
The <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
is a project to make a book and screencasts to teach web development
with <a href="http://rubyonrails.org/">Ruby on Rails</a>. This
is the sample application for the tutorial.
</p>
答案 0 :(得分:12)
我注意到你在失败的测试中错过了最初的/
:
visit 'static_pages/about'
VS
visit '/static_pages/help'