Ruby on rails 3.2 水豚的行为很奇怪;单击“U链接”;是未定义的

Ruby on rails 3.2 水豚的行为很奇怪;单击“U链接”;是未定义的,ruby-on-rails-3.2,capybara,Ruby On Rails 3.2,Capybara,似乎所有的水豚方法都神奇地没有定义。我正在尝试取消TDD的一些测试,并编写了以下测试: it "sign in and fail" do click_link "login" fill_in "User Name", :with => "Test" fill_in "Password", :with => "test" click_button "sign in" page.should have_content("User does no

似乎所有的水豚方法都神奇地没有定义。我正在尝试取消TDD的一些测试,并编写了以下测试:

  it "sign in and fail" do
    click_link "login"
    fill_in "User Name", :with => "Test"
    fill_in "Password", :with => "test"
    click_button "sign in"
    page.should have_content("User does not exist. Pleae try registering in.")
  end
它应该在点击链接时发疯,只是因为不存在这样的链接,而是说:

NoMethodError:
       undefined method `click_link'
所以我检查了我的gem文件:

gem "rspec-rails", :group => [:test, :development]
group :test do
    gem "factory_girl_rails"
    gem "capybara"
    gem "guard-rspec"
    gem 'database_cleaner'
    gem "launchy"
end
然后我检查了我的pec助手,是的,我有:

require 'capybara/rspec'
require 'capybara/rails'
那么,当任何一个guard运行时,未定义的方法错误是什么呢?它应该告诉我“嗯,没有我可以点击的链接…”而不是“我不知道什么是点击链接”。它在访问时会发疯,点击按钮,包含等等


a据我所知,水豚已正确安装……

请尝试将其放入您的env.rb中:

include Capybara::DSL

然后运行测试

验证spec文件是否确实需要rspec助手。我也经历过类似的一次,这是因为我的编辑器的默认模板需要一个不同的文件,而且它足够近,所以我在撕头发的时候看了几十遍。我确实有:
require'spec\u helper'
,在顶部,在spec_helper中,我曾经注释掉:
config.use_transactional_fixtures=true
因为我得到了错误:`undefined method
use_transactional_fixtures='
@AndyDavisDo您有subject{page}语句吗?您的it{…}在descripe/context块中吗?我只是想掩盖事实。我怀疑我的其他建议会有多大用处。不知道会发生什么。