是否可以覆盖我的 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/