Rails pages_controller_spec.rb 测试不应该失败,但错误? [英] Rails pages_controller_spec.rb test shouldn't be failing but is, error?
问题描述
一直在关注 Michael Hart 的 Rails 教程mac OS X 10.7 上的 rails 3.0 版
Have been following Rails Tutorial by Michael Hart rails version 3.0 on mac OS X 10.7
$ rspec 规范/
$ rspec spec/
......FF
Failures:
1) PagesController GET 'help' should be successful
Failure/Error: get 'help'
ActionController::RoutingError:
No route matches {:controller=>"pages", :action=>"help"}
# ./spec/controllers/pages_controller_spec.rb:45:in `block (3 levels) in <top (required)>'
2) PagesController GET 'help' should have the right title
Failure/Error: get 'help'
ActionController::RoutingError:
No route matches {:controller=>"pages", :action=>"help"}
# ./spec/controllers/pages_controller_spec.rb:49:in `block (3 levels) in <top (required)>'
Finished in 0.14686 seconds
8 examples, 2 failures
Failed examples:
rspec ./spec/controllers/pages_controller_spec.rb:44 # PagesController GET 'help' should be successful
rspec ./spec/controllers/pages_controller_spec.rb:48 # PagesController GET 'help' should have the right title
测试如下:
require 'spec_helper'
describe PagesController do
render_views
describe "GET 'home'" do
it "should be successful" do
get 'home'
response.should be_success
end
it "should have the right title" do
get 'home'
response.should have_selector("title",
:content => "Ruby on Rails Tutorial Sample App | Home")
end
end
describe "GET 'contact'" do
it "should be successful" do
get 'contact'
response.should be_success
end
it "should have the right title" do
get 'contact'
response.should have_selector("title",
:content => "Ruby on Rails Tutorial Sample App | Contact")
end
end
describe "GET 'about'" do
it "should be successful" do
get 'about'
response.should be_success
end
it "should have the right title" do
get 'about'
response.should have_selector("title",
:content => "Ruby on Rails Tutorial Sample App | About")
end
end
describe "GET 'help'" do
it "should be successful" do
get 'help'
response.should be_success
end
it "should have the right title" do
get 'help'
response.should have_selector("title",
:content => "Ruby on Rails Tutorial Sample App | Help")
end
end
end
我在 pages_controller.rb 中有
And I have in pages_controller.rb
class PagesController < ApplicationController
def home
@title = "Home"
end
def contact
@title = "Contact"
end
def about
@title = "About"
end
def help
@title = "Help"
end
end
在 routes.rb 中我有
And in routes.rb I have
SampleApp::Application.routes.draw do
get "pages/home"
get "pages/contact"
get "pages/about"
get "pages/help"
end
当然我还在 app/views/pages 中创建了一个 help.html.erb 页面奇怪的是,当我运行 rails server 并转到 localhost:3000/pages/help 时,我得到了带有正确标题的正确页面,使它看起来好像测试应该通过了,但事实并非如此.此外,联系人、家庭和关于测试通过,但是当我刚刚添加帮助时,由于某些未知原因,它没有通过.这真的让我很烦恼,我忽略了它让我发疯的简单解决方案是什么?
And of course I also created a help.html.erb page in app/views/pages The strange thing is when I run rails server and go to localhost:3000/pages/help I get the proper page with the proper title, making it appear as if the test should've passed, yet it doesn't. Additionally the contact, home, and about tests pass but when I just now added the help it doesn't for some unknown reason. This is really bugging me out, what is the simple solution I have overlooked that it driving me insane?
推荐答案
下载您的代码并运行:
........
8 examples, 0 failures
Finished in 0.18184 seconds
它正在运行 GET 'help',所以我认为你在自动测试中运行它并且它没有重新加载.可能吗?
It is running the GET 'help', so I think you're running this in autotest and it is not reloading. Possible?
这篇关于Rails pages_controller_spec.rb 测试不应该失败,但错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!