gpt4 book ai didi

ruby-on-rails - 如何测试Rails的ETag缓存?

转载 作者:行者123 更新时间:2023-12-04 05:15:18 25 4
gpt4 key购买 nike

是否可以覆盖我的 Controller ,该 Controller 在单元测试中对Etags的依赖程度很高?

这是我想做的事情:
如果页面不是陈旧的(意味着它是新鲜的),我在响应中添加一些 header 。

当我尝试测试所有内容(rspec)时,无论我有多少类似的请求,我仍然会收到200 OK而不是304,并且我的 header 没有被修改。此外,如果我跟踪request.fresh?(响应),则始终为false。

但是,它完全可以在浏览器中工作。
我已经尝试声明ActionController::Base.perform_caching = true,它不会改变总体情况。

谢谢

最佳答案

这是测试第二个请求是否返回304响应的方法:

    get action, params
assert_response 200, @response.body
etag = @response.headers["ETag"]
@request.env["HTTP_IF_NONE_MATCH"] = etag
get action, params
assert_response 304, @response.body

关于ruby-on-rails - 如何测试Rails的ETag缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2644354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com