Я не могу заставить Capybara работать успешно, он жалуется, что has_text
- неопределенный метод.
Я создал новый проект rails 3.1 (rails new test -T
).
Gemfile:
source 'http://rubygems.org'
gem 'rails', '3.1.3'
gem 'sqlite3'
group :assets do
gem 'sass-rails', '~> 3.1.5'
gem 'coffee-rails', '~> 3.1.1'
gem 'uglifier', '>= 1.0.3'
end
gem 'jquery-rails'
group :test do
gem 'rspec-rails'
gem 'capybara'
end
Я установил папку spec: rails g rspec:install
.
spec / spec_helper.rb:
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
require 'capybara/rspec'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :rspec
config.fixture_path = "#{::Rails.root}/spec/fixtures"
config.use_transactional_fixtures = true
config.infer_base_class_for_anonymous_controllers = false
end
И, наконец, мой тестовый файл:
require 'spec_helper'
feature "the test" do
scenario "GET /" do
visit('/')
page.should have_text('Welcome aboard')
end
end
Итак, я запускаю rspec: bundle exec rspec spec/my_test.rb
, и это ошибка:
F
Failures:
1) the test GET /
Failure/Error: page.should have_text('Welcome aboard')
NoMethodError:
undefined method `has_text?' for #<Capybara::Session>
# ./spec/my_test.rb:6:in `block (2 levels) in <top (required)>'