用黄瓜测试设计未经验证的用户

时间:2011-10-10 05:37:38

标签: ruby-on-rails devise cucumber capybara

在此示例中:https://github.com/RailsApps/rails3-devise-rspec-cucumber

我收到错误,因为访问('/ users / sign_out')(在capybara中确保用户已注销)失败。问题是没有GET到该路径的路由,因为设计将其更改为DELETE(并且capybara不支持PUT和DELETE而没有一些js变通方法​​)

对于“鉴于我是未经身份验证的用户”步骤,您有什么建议?你们通常怎么做?我希望有一个简单的方法,像1-2行红宝石。

目前,我只是这样做:

Given "i am an unauthenticated user" do
  @user == nil
end

但它确实看起来不像是在测试任何东西。

1 个答案:

答案 0 :(得分:4)

是的 - 对于很多人来说,这有点痛苦。

最简单的解决方法是将它放在/config/initializers/devise.rb文件中:

  config.sign_out_via = Rails.env.test? ? :get : :delete

这将为您的测试环境使用旧的get方法,并为所有其他方法删除。