未初始化的常量水豚

Dav*_*d Q 5 ruby rspec ruby-on-rails capybara

我在使用 Capybara 在 Rails 中运行测试时遇到问题。每当我运行它时,它都会告诉我我的 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
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行此测试 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 
Run Code Online (Sandbox Code Playgroud)

如果需要其他更多信息,请告诉我

- - - - 更新 - - - - - - - -

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

require 'capybara/rspec'
Run Code Online (Sandbox Code Playgroud)

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

-----新问题------------ 但是现在我遇到了另一个问题,它说“访问”未定义。

 undefined method `visit' for #<RSpec::ExampleGroups::StaticPages::AboutPage:0x000001033f5d50>
Run Code Online (Sandbox Code Playgroud)

我试过需要'capybara',并且需要'capybara/dsl',但它们仍然给我错误,然后是一些错误。

小智 0

添加require 'capybara/rails'到您的测试助手