私はCapybaraをうまく動作させることができません。has_text
は定義されていないメソッドです。Capybara&RSpec
新しいレール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
:rails g rspec:install
。
スペック/ 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)>'
KL-7、あなたは私の質問で何を変えましたか?私はそれを書いたときとまったく同じように見ます。実際、私は2つのバージョンの差分を作成しており、それらは同じです。 –
何も特別なことは心配しないでください。最初の文の中にバッククォートで 'has_text'をラップするだけで、もう少し目立つようになりました。リビジョン履歴で見ることができます。 –
改訂履歴はどこですか? (私はまだそのオプションを見つけられていないので、ただ知っている)。 –