我正在思考Mike Hartl的Rails教程和in section 4.4它似乎让我更改了以下格式的rspec请求文件:
page.should have_selector('title', :text => "#{base_title}")
到
expect(page).to have_title("Ruby on Rails Tutorial Sample App")
我现在得到两个未定义的方法错误,我使用“.to have_title”和“.to_not have_title”。我关闭并重新启动Webrick,Spork和Guard以防万一,但它仍然不起作用。
Capybara版本1.1.2 Rspec版本2.11.1
如果需要任何其他信息,请与我们联系。
答案 0 :(得分:4)
显然教程最近发生了变化。
通过谷歌缓存访问该页面显示原始版本(对我来说很好):
require 'spec_helper'
describe "Static pages" do
describe "Home page" do
it "should have the h1 'Sample App'" do
visit '/static_pages/home'
page.should have_selector('h1', :text => 'Sample App')
end
it "should have the base title" do
visit '/static_pages/home'
page.should have_selector('title',
:text => "Ruby on Rails Tutorial Sample App")
end
it "should not have a custom page title" do
visit '/static_pages/home'
page.should_not have_selector('title', :text => '| Home')
end
end
.
.
.
end
答案 1 :(得分:0)
可能是您的版本问题。完成https://github.com/jnicklas/capybara/issues/863
expect(first('title').native.text).to eq "my title"
答案 2 :(得分:0)
我有这个问题,我意识到最终我已经切换到跟踪rails版本4的代码,而不是3.2。
要测试您正在使用的rails版本,请键入命令
rails -v
然后在教程页面上,使用右侧的导航器选择正确的rails版本。看似简单,但希望它可以为这个问题的其他人带来悲伤。