rspec capybara错误 - 未定义方法`访问'为#

时间:2014-06-29 15:13:30

标签: ruby-on-rails ruby-on-rails-3 rspec capybara rspec2

我有:

  • 已将gem 'capybara'添加到Gemfile我已经bundle

  • 已将我的规范放在规范/请求中visit_home_page_root_spec.rb

  • 已添加到`spec / spec_helper.rb:

-

require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rails'
require 'capybara/rspec'

但我仍然会收到标题中显示的消息。

我的规格是:

describe "Home Page", :type => :feature do

  it "Visit the home page" do
    visit '/'
    expect(page).to have_content 'Linker'
  end

end

Gemfile.lock有:

rspec-core (2.14.8)
rspec-expectations (2.14.5)
  diff-lcs (>= 1.1.3, < 2.0)
rspec-mocks (2.14.6)
rspec-rails (2.14.1)
  actionpack (>= 3.0)
  activemodel (>= 3.0)
  activesupport (>= 3.0)
  railties (>= 3.0)
  rspec-core (~> 2.14.0)
  rspec-expectations (~> 2.14.0)
  rspec-mocks (~> 2.14.0)

1 个答案:

答案 0 :(得分:0)

听起来像水豚DSL并没有包含在你的例子中。这已经自动完成了越来越少(并且在rspec 3中完全没有),但是从内存中它应该是你的版本。

然而,您应该能够通过

来解决这个问题
describe "foo" do
  include Capybara::DSL
end

对于任何需要它的规格。或者,在RSpec.configure块中,执行

config.include(Capybara::DSL, :type => :feature)

会自动为所有类型功能的规格执行此操作)