我试图做一个单元测试,以确保某些操作确实/不要查询数据库。有什么方法可以查看查询,或者我可以查看最糟糕的一些计数器?如何在单元测试中检查Rails记录缓存?
1
A
回答
2
如果您的意图是要辨别Rails(ActiveRecord)是否实际缓存查询,那么您不必为这些元素编写单元测试,它们都是Rails本身的一部分。
编辑:
在这种情况下,我可能会看看我是否能适应轨道团队使用测试的ActiveRecord本身的策略之一。从我上面的链接检查以下测试:
def test_middleware_caches
mw = ActiveRecord::QueryCache.new lambda { |env|
Task.find 1
Task.find 1
assert_equal 1, ActiveRecord::Base.connection.query_cache.length
}
mw.call({})
end
您可以做类似如下:
def check_number_of_queries
mw = ActiveRecord::QueryCache.new lambda { |env|
# Assuming this object is set up to perform all its operations already
MyObject.first.do_something_and_perform_side_operations
puts ActiveRecord::Base.connection.query_cache.length.to_s
}
end
我没有尝试过这样的事情,但它可能是值得进一步调查。如果上面实际上返回了等待发生的缓存查询的数量,那么为您的测试用例更改puts为断言应该是微不足道的。
相关问题
- 1. 如何对单元测试缓存层
- 2. 如何记录单元测试?
- 3. Rails缓存记录
- 4. 单元测试和记录
- 5. 如何在Rails 4中禁止查询缓存日志记录
- 6. 单元测试,如何检查$ uibModal的模板是否存在
- 7. 如何测试和记录多次-nosetest单元测试 - 蟒蛇
- 8. 如何在Silverlight单元测试框架中记录输出?
- 9. 如何在单元测试中抑制Spark记录?
- 10. 如何在猫鼬中记录错误,但单元可测试?
- 11. 如何检查,测试值是单元测试断言
- 12. 如何测试缓存目录?
- 13. 如何在Symfony 1.4单元测试中启用Doctrine查询日志记录
- 14. 如何检查laravel黄昏测试中是否存在元素?
- 15. 单元测试ServiceStack缓存异常
- 16. 如何在单元测试中检查http请求?
- 17. 如何在单元测试中检查python类的实例化
- 18. 如何检查记录是否存在
- 19. 如何在保存到Rails 4之前检查现有记录?
- 20. 检查单只存在记录
- 21. 测试::简单检查文件存在
- 22. 在单元测试中检测垃圾
- 23. 从symfony单元测试记录?
- 24. 记录单元测试符合代码
- 25. 如何在rails中禁用activerecord缓存日志记录
- 26. 在单元测试中检查指令中是否存在html元素
- 27. Rails:如何知道单元测试中哪个测试模型?
- 28. 我如何单元测试的实现细节比如缓存
- 29. 如何在rspec控制器测试中设置Rails缓存
- 30. 如何在rails的功能测试中启用页面缓存?
您是试图测试钢轨的缓存,还是您有一堆您想要手动缓存的自定义SQL? –
Rails的缓存。具体来说,我有几个函数试图智能地使用缓存数据(x.loaded?检查),并且想要可靠地执行这两个代码路径,*和*确保它们不会触及数据库。 – Groxx