1

我正在阅读 Mike Hartl 的 Rails 教程,在第 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

如果需要任何其他信息,请告诉我。

4

3 回答 3

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
于 2013-05-27T11:32:09.740 回答
0

可能是你版本的问题。通过https://github.com/jnicklas/capybara/issues/863

expect(first('title').native.text).to eq "my title"
于 2013-05-27T09:34:13.517 回答
0

我遇到了这个问题,我最终意识到我已经切换到遵循 Rails 版本 4 的代码,而不是 3.2。

要测试您使用的 Rails 版本,请输入命令

rails -v

然后在教程页面上,使用右侧的导航器选择正确的 rails 版本。看起来很简单,但希望它能为其他人解决这个问题。

于 2013-06-30T09:53:02.553 回答