Hom*_*ith 3 ruby-on-rails http cucumber capybara
我有这个步骤定义:
Given /^I am not logged in$/ do
visit '/users/sign_out'
end
Run Code Online (Sandbox Code Playgroud)
而rake路线给了我这个:
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
Run Code Online (Sandbox Code Playgroud)
那么..我该怎么测试呢?有什么办法可以在Capybara中添加HTTP方法吗?
我这样说是因为我在测试中一直收到这个错误:
No route matches [GET] "/users/sign_out" (ActionController::RoutingError)
Run Code Online (Sandbox Code Playgroud)
更改:
config.sign_out_via = :delete
Run Code Online (Sandbox Code Playgroud)
对于
config.sign_out_via = Rails.env.test? ? :get : :delete
Run Code Online (Sandbox Code Playgroud)
在 config/initializers/devise.rb
如Rails-Devise-Rspec-Cucumber教程中所述,通过这样做,您将使Devise对注销操作执行GET请求.而这恰好将发生在测试环境中......
| 归档时间: |
|
| 查看次数: |
2432 次 |
| 最近记录: |