使用水豚测试页面时出错

error while using capybara to test a page

当我尝试使用水豚测试页面时,出现以下错误 Image for the error

这是我的 Gemfile 的代码:

gem 'rails', '3.2.21'

gem 'sqlite3'
gem 'rspec-rails'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'

  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :test do
  gem 'capybara'
end

group :production do
  gem 'pg'
end

这是 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'
      page.should have_content('Sample App')
    end
  end
end

当我用get替换访问后,问题就解决了。

同样的问题出现在"page.should hava_content"部分

有什么建议吗?

您的规范中没有水豚提供的方法。很可能您没有将 Capybara DSL 混入 rspec.

在您的 spec_helper.rb 中(spec 文件夹中的顶级)

require 'capybara/rspec'

RSpec.configure do |config|
    config.include Capybara::DSL, type: :request
    ...
end

在您的测试文件中:require 'spec_helper'