为什么Capybara在页面工作时会抛出错误?

时间:2013-02-15 14:11:12

标签: ruby-on-rails tdd capybara

我有一个非常简单的水豚脚本,用于使用设计的自定义注册表单:

  scenario "allow me to register and should take me to the new partner page" do
    visit '/registrations/become_partner'
    response.should be_success
  end

当我尝试运行测试时,出现以下错误:

     ActionView::Template::Error:
       undefined method `first_name' for #<User:0x00000004d259e8>

即使定义了此方法。我在模型中设置了attr_accesible,页面呈现,我可以从rails控制台调用此方法。为什么水豚在其他地方出现问题时会抛出这个错误?

1 个答案:

答案 0 :(得分:2)

看起来您的测试环境还不知道该属性 - 显然您已在开发环境中添加了字段first_name,但尚未在测试环境中添加。

要更新测试环境,只需运行

即可
rake db:test:prepare

它会起作用。您应该在运行迁移后始终执行此操作,这是一个常见的错误。