我真的希望有人能帮我解决这个问题。我正在学习Michael的Rails 3教程,并在第5章中碰到了一道墙。昨天我花了大部分时间试图通过回顾所有的工作来解决这个问题,并研究了关于堆栈溢出的所有相关问题。那里有大量的信息,但都没有解决我的问题,我真的不明白我哪里出了问题。
一切都进行得很顺利(网站就像书中说的那样工作),直到我到达了作者带领您清理“static_pages_spec.rb”文件的地步。我公司目前的情况如下:
require 'spec_helper'
describe "Static pages" do
subject { page }
describe "Home page" do
before { visit root_path }
it { should have_selector('h1', text: 'Sample App') }
it { should have_selector('title', text: full_title('')) }
it { should_not have_selector 'title', text: '| Home' }
end
describe "Help page" do
before { visit help_path }
it { should have_selector('h1', text: 'Help') }
it { should have_selector('title', text: full_title('Help')) }
end
describe "About page" do
before { visit about_path }
it { should have_selector('h1', text: 'About') }
it { should have_selector('title', text: full_title('About Us')) }
end
describe "Contact page" do
before { visit contact_path }
it { should have_selector('h1', text: 'Contact') }
it { should have_selector('title', text: full_title('Contact')) }
end
end我还有两个‘spec/support/utities.rb’文件,正如作者所描述的:
def full_title(page_title)
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end结束
以及“app/helpers/application_helper.rb”中的以下内容
module ApplicationHelper
#Returns the full title based on a per-page basis.
def full_title(page_title)
base_title = "Ruby on Rails Tutorial Sample App"
if page_title.empty?
base_title
else
"#{base_title} | #{page_title}"
end
end结束
当我跑‘警卫’(我已经通过设置警卫,斯波克等)我得到以下三个失败:
1)静态页面帮助页面失败/错误:它{应该have_selector('title',text: full_title(' Help ')) }预期的css "title“与文本”Rails教程示例应用程序示例帮助“返回>某样东西#./spec/requests/ Static _spec.rb:19: in
block (3 levels) in ' 2) Static pages About page Failure/Error: it { should have\_selector('title', text: full\_title('About Us')) } expected css "title" with text "Ruby on Rails Tutorial Sample App | About Us" to >return something # ./spec/requests/static\_pages\_spec.rb:26:in块(3个级别) 3)静态页面联系页面失败/错误:它{应该have_selector(‘标题’,文本: full_title(' Contact ')) }预期的css“标题”与文本“Rails教程示例应用程序的链接”>返回某样东西#./spec/请求/静态_ pages _spec.rb:33:在‘块(3个级别)中’
该站点工作正常(路由似乎是正确的),但我确实注意到,如果我查看任何页面的源代码,标题总是“Rails教程示例应用程序”。‘\ :page_title’这个词似乎是占优势的。我只是找不到我做了什么来打破它,因为我的rspec测试是在书中的早期点工作的。
我看到了很多这样的问题,在这些问题中,那些试图帮助的人请求访问GitHub上的代码。为了快速发现我的错误,我把所有的代码都放在了上面:
https://github.com/rbrowndev/sampleapp.git
https://github.com/rbrowndev/sampleapp/tree/filling-in-layout
由于我是新手,请让我知道,如果存储库没有正确配置,允许您克隆该项目。我相信我是这样安排的,但因为我是个新手.
如果有人能帮忙的话,我们将不胜感激。请让我知道,如果您希望我在这里张贴更多的源代码,所以,而不是仅仅在GitHub上。
谢谢。
发布于 2013-02-17 18:35:53
有一个bug阻止我们检查标题字段中的文本(实际上,它是任何不可见的内容):https://github.com/jnicklas/capybara/issues/844
到目前为止,这似乎是启用在规范中检查标题文本的最佳方法:https://stackoverflow.com/a/13755730/359957
https://stackoverflow.com/questions/12218804
复制相似问题