我想测试一个使用
joblib
缓存功能的函数。
我想知道在使用 pytest 执行单元测试时如何跳过缓存并调用实际函数?适合嘲笑
joblib.Memory
之类的东西吗?
假设我有以下功能:
from joblib import Memory
memory = Memory(location="cache")
@memory.cache
def func(a):
return a**2
def test_func():
assert func(2) == 4
我该如何模拟缓存功能并强制
func
在每次从测试函数中调用它时执行?
由
joblib.Memory
缓存的函数具有 .func
属性,可提供对底层函数的访问。请参阅文档此处。因此,您可以按如下方式编写测试:
from joblib import Memory
memory = Memory(location="cache")
@memory.cache
def func(a):
return a**2
def test_func():
assert func.func(2) == 4