Ruby on rails 使用cucumber测试未经验证的用户

Ruby on rails 使用cucumber测试未经验证的用户,ruby-on-rails,devise,cucumber,capybara,Ruby On Rails,Devise,Cucumber,Capybara,在本例中: 我收到一个错误,因为访问('/users/sign_out')(在capybara中..确保用户注销)失败。问题是没有到达该路径的路径,因为Desive将其更改为DELETE(并且,如果没有一些js解决方案,capybara不支持PUT和DELETE) 在执行“假定我是未经验证的用户”步骤时,您有什么建议?你们通常是怎么做的?我希望有一个简单的方法来解决这个问题,比如1-2行ruby 目前,我只是: Given "i am an unauthenticated user" do

在本例中:

我收到一个错误,因为访问('/users/sign_out')(在capybara中..确保用户注销)失败。问题是没有到达该路径的路径,因为Desive将其更改为DELETE(并且,如果没有一些js解决方案,capybara不支持PUT和DELETE)

在执行“假定我是未经验证的用户”步骤时,您有什么建议?你们通常是怎么做的?我希望有一个简单的方法来解决这个问题,比如1-2行ruby

目前,我只是:

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

但它看起来确实没有在测试任何东西。

是的,这对lotsa的人来说有点痛苦

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

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

这将对您的测试环境使用旧的get方法,而对所有其他环境使用delete方法。

如果将它放在config/environments/test.rb中会更好吗?这样做可能还是更好?是的-将其放在环境/测试中也应该可以正常工作(config.sign\u out\u via=:get)。不管你喜欢哪一个,真的。。。谢谢。:-)