我正在将旧的krufty应用程序升级到Rails 3.1。该公司一直在使用RSpec和Capybara进行验收测试。我们在spec/acceptance
下进行了一些验证测试失败,并显示以下消息:
Failure/Error: get @url
NoMethodError:
undefined method `get' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x007feb7c0abf58>
以下是其中一个测试的示例(从文件顶部开始):
require_relative 'acceptance_helper'
feature 'Catalog' do
before do
Settings.use_catalog_navigation = true
end
context 'with a Vendor' do
before do
@vendor = create(:vendor, slug: 'abc')
@product = create(:product_with_variants, vendor: @vendor)
@non_vendor_product = create(:product_with_variants)
@invisible_product = create(:product_with_variants,
vendor: @vendor,
visible: false)
@non_available_product = create(:product_with_variants,
vendor: @vendor,
available: false)
@url = "/#{@vendor.slug}"
end
it 'sets @vendor' do # <- FIRST FAILING TEST
get @url
assigns(:vendor).should == @vendor
end
...
在咨询oracle时,我一直在提到“访问”方法的问题,例如:https://github.com/jnicklas/capybara/issues/814
我还会不断发现与本文相关的帖子:http://alindeman.github.com/2012/11/11/rspec-rails-and-capybara-2.0-what-you-need-to-know.html
我不确定我是否遇到同样的问题。我可以发布我的spec_helper.rb
和acceptance_helper.rb
,如果它们有用的话。
我想值得注意的是,在更新rspec-rails和capybara之前,这些规格已经过去了。
我的直觉是,也许rspec-rails正在破坏一些水豚的方法,或者一些水豚的方法根本不再被加载。这可能是问题吗?
答案 0 :(得分:0)
尝试在配置块内的config.include Capybara::DSL
中添加spec_helper.rb
。像这样:
RSpec.configure do |config|
config.include Capybara::DSL