Capybara で機能仕様を実行しようとすると、
undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x007fdc629c6d28>
エラー。カピバラが正しく構成されていないことが問題であることはわかっていますvisit
。
私のgemfileの関連部分は次のとおりです。
group :test, :development do
gem 'rspec-rails', '~> 2.0'
gem 'factory_girl_rails', ">= 4.2.0"
gem 'guard-rspec', "~> 0.7.0"
end
group :test do
gem 'faker', '~> 1.0.1'
gem 'capybara', git: 'https://github.com/jnicklas/capybara', ref: '7fa75e55420e'
gem 'database_cleaner', '~> 0.7.2'
gem 'launchy', '~> 2.1.0'
gem 'shoulda-matchers'
end
カピバラ 2.0 へのアップグレードに関するこの記事から得たカピバラのリファレンスを使用します。
そして、ここに私の仕様があります:
# spec/features/create_user_spec.rb
require 'spec_helper'
feature 'Creating a user' do
scenario 'adds a new user' do
visit new_user_registration_path
fill_in 'Email', :with => 'me@me.com'
[ 'Password', 'Password confirmation' ].each { |p| fill_in p, :with => '12345678' }
page.should have_content 'User successfully created'
current_path.should == recipes_path
end
end
そして、これが私のものspec_helper.rb
です:
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'
require 'capybara/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
config.include Capybara::DSL
config.order = "random"
end
私が試したこと
- 手動で含める
Capybara::DSL
- ファイル
require_relative
への正しいルーティングを与えるための追加spec_helper
私が見落としていることを教えてください。