【发布时间】:2015-01-15 17:14:00
【问题描述】:
我正在为缓存机制编写测试。该机制有两个缓存层,请求缓存和redis。请求缓存使用Flask.g,这是一个在请求期间存储值的对象。它通过在 Flask.g._cache 属性上创建一个字典来做到这一点。
但是,我认为确切的属性是我的单元测试不应该关心的实现细节。我想确保它将其值存储在 Flask.g 上,但我不在乎它是如何做到的。什么是测试这个的好方法?
我正在使用 Python 模拟模块,所以我知道我可以模拟 `Flask.g,但我不确定是否有办法测试它是否有任何属性访问,而不关心哪个它是财产。
对于这样的测试,这甚至是正确的方法吗?
【问题讨论】:
-
与其在你的测试中查看 cache 的细节,为什么不只是确保
expensive_op_1和expensive_op_2做 not 不止一次被叫?数据被缓存的位置无关紧要(就测试而言) - 是否数据被缓存并重新使用,而不是您想要测试的重新请求。 (还是我误解了你的问题?) -
嗯,请求缓存比去redis快很多。
标签: python unit-testing caching flask