在此示例中: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
但它确实看起来不像是在测试任何东西。
答案 0 :(得分:4)
是的 - 对于很多人来说,这有点痛苦。
最简单的解决方法是将它放在/config/initializers/devise.rb文件中:
config.sign_out_via = Rails.env.test? ? :get : :delete
这将为您的测试环境使用旧的get方法,并为所有其他方法删除。