ruby-on-rails – 未初始化的恒定水豚

我在使用Capybara的导轨中运行测试时遇到问题.

每当我运行它时,它告诉我在spec_helper.rb文件中有一个’未初始化的常量Capybara(NameError)’.

我正在学习本教程:
http://www.railstutorial.org/book/static_pages#code-capybara_dsl

这是我的spec_helper.rb

RSpec.configure do |config|
  config.include(Capybara::DSL)
end

我正在尝试运行此测试static_pages_spec.rb

require 'spec_helper'
  describe "Static pages" do

it "should have the content 'Sample App'" do
  visit '/static_pages/home'
  expect(page).to have_content('Sample App')
end 

如果还有其他需要的信息,请告诉我

——– UPDATE —————-

我解决了这个问题. Rspec的版本我在spec文件夹中创建了一个rails_helper.rb文件.我必须做:

require 'capybara/rspec'

在该文件和config.include Capybara :: DSL中的配置.

—–新问题————
但现在我遇到了另一个问题,就是说“访问”是不确定的.

 undefined method `visit' for #<RSpec::ExampleGroups::StaticPages::AboutPage:0x000001033f5d50>

我试过要求’capybara’,并要求’capybara / dsl’,但他们仍然给我错误,然后一些.

最佳答案 我找到了问题,我正在初始化常量水豚,因为在较新版本的rspec中,当你第一次创建一个spec文件夹时,它会创建一个新文件夹“rails_helper”,它会同时创建rails_helper和spec_helper. spec文件夹中的第一个模拟斑点测试位于顶部

require 'rails_helper'

我正在按照一个教程告诉我要求’spec_helper’,但对于较新版本的rspec则不然.

所以我补充道

config.include(Capybara::DSL)

在rails helper文件夹中,一切正常,除了我的css错误,但我相信这是因为测试运行无头,所以他们不工作.显示所有错误后,规范测试运行正常.如果您还有其他问题,请告诉我.

点赞