3

似乎所有的水豚方法都神奇地未定义。我正在尝试对 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

它应该在 click_link 上吓坏了,只是因为不存在这样的链接,而是吓坏了说:

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'

那么当守卫运行时未定义的方法错误是什么?它应该告诉我“嗯,我没有可以点击的链接......”而不是“我不知道 click_link 是什么”。它在访问,click_button,包含等等时吓坏了。

据我所知水豚安装正确....

4

1 回答 1

1

试着把它放在你的 env.rb 中:

include Capybara::DSL

然后运行测试

于 2014-08-15T18:16:59.073 回答