我正在模拟一个来自外部服务的请求,该请求没有真实性令牌。我希望在缺少skip_before_action :verify_authenticity_token
的情况下测试失败。
我如何从Rspec请求规范中做到这一点?
目前我使用的post
如下,但它是愉快的接受。
post endpoint, my_json_string, {'CONTENT_TYPE' => "application/json"}
我正在模拟一个来自外部服务的请求,该请求没有真实性令牌。我希望在缺少skip_before_action :verify_authenticity_token
的情况下测试失败。
我如何从Rspec请求规范中做到这一点?
目前我使用的post
如下,但它是愉快的接受。
post endpoint, my_json_string, {'CONTENT_TYPE' => "application/json"}
2条答案
按热度按时间axr492tv1#
CSRF保护在测试环境中已禁用。请尝试使用以下命令启用它:
iyfamqjs2#
禁用CSRF保护对我不起作用,所以我创建了这个模块,它使用响应主体来检索真实性令牌:
https://gist.github.com/Rodrigora/440220a2e24bd42b7b0c
然后,我可以测试put/post请求,而无需禁用伪造保护: