【问题标题】:testing devise unauthenticated user with cucumber测试用黄瓜设计未经身份验证的用户
【发布时间】:2011-12-04 06:23:59
【问题描述】:

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

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

您对执行“鉴于我是未经身份验证的用户”步骤有何建议?你们通常是怎么做的?我希望有一个简单的方法可以解决这个问题,比如 1-2 行红宝石。

目前,我只是这样做:

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

但它肯定看起来不像在测试任何东西。

【问题讨论】:

    标签: ruby-on-rails devise cucumber capybara


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 如果放在config/environments/test.rb中会不会更好?是否有可能或只做以上更好?
    • 是的 - 将它放在环境/测试中也应该可以正常工作(config.sign_out_via = :get)。无论您真正喜欢哪个。 ...谢谢。 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2020-11-15
    • 2016-01-17
    相关资源
    最近更新 更多