新手问题 如何在 ActionDispatch::IntegrationTest 中跳过 verify_authenticity_token?

NeptuneG · 2018年04月16日 · 最后由 NeptuneG 回复于 2018年04月17日 · 359 次阅读

测试一个controller时ActionDispatch::IntegrationTest中有以下的case:

test "should success when received a request for javascript response" do
  get ajax_sample_path, headers: { "HTTP_ACCEPT" => "application/javascript" }
  assert_response :success
end

如果直接跑会报402,但如果在相应的controller里加一句skip_before_action :verify_authenticity_token,测试就过了。

那么有可能在ActionDispatch::IntegrationTest中跳过verify_authenticity_token么?

共收到 2 条回复

在environments/test.rb 加上config.action_controller.allow_forgery_protection = false 來關閉csrf token

感谢回答🙏

在environments/test.rb已经加过config.action_controller.allow_forgery_protection = false 最后查了一下Testing Rails Applications — Ruby on Rails Guides,加一个xhr: true参数后OK了

get ajax_sample_path, headers: { "HTTP_ACCEPT" => "application/javascript" }, xhr: true
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册