Don*_*lio 4 testing unit-testing ruby-on-rails csrf devise
我正在尝试对我的控制器进行单元测试,每个使用该get请求的测试都能正常工作,但我使用其他调用的测试(delete在destroy中,post在create和put更新中)都失败了:
WARNING: Can't verify CSRF token authenticity
Completed 401 Unauthorized in 2.5ms
Run Code Online (Sandbox Code Playgroud)
例如,这是对破坏的测试:
test "should destroy blog" do
assert_difference('Blog.count', -1) do
delete :destroy, id: @blog
end
assert_redirected_to blogs_path
end
Run Code Online (Sandbox Code Playgroud)
这不起作用
这是show的测试,它起作用:
test "should show blog" do
get :show, id: @blog
assert_response :success
end
Run Code Online (Sandbox Code Playgroud)
在破坏测试中,设计authenticate_user!只是将我重定向到sign_in页面,测试失败.
显然,在测试环境中禁用CSRF令牌是正常的,我补充说:
# Disable request forgery protection in test environment
config.action_controller.allow_forgery_protection = false
Run Code Online (Sandbox Code Playgroud)
到我的"/config/environments/test.rb"文件,当前用户能够通过.
| 归档时间: |
|
| 查看次数: |
2277 次 |
| 最近记录: |