gpt4 book ai didi

ruby-on-rails-3 - capybara 和 RSpec

转载 作者:行者123 更新时间:2023-12-04 19:43:41 27 4
gpt4 key购买 nike

我无法让 Capybara 成功运行,它提示 has_text是一个未定义的方法。

我创建了一个新的 rails 3.1 项目( rails new test -T )。

gem 文件:

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)>'

最佳答案

您很可能正在使用 capybara 1.1.2这是当前的稳定版本,但它没有 has_text?方法。您可以使用 has_content? (以及相应的 have_content 匹配器),或者按照 Skydreamer 的建议直接从 github 存储库使用 capybara 。

请注意 has_content?README 中描述的行为略有不同.另一方面,直接从存储库使用 gem 并不总是安全的,因为这个版本可能不是很稳定。

关于ruby-on-rails-3 - capybara 和 RSpec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8688925/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com