使用 pytest 模拟 joblib 缓存

问题描述 投票:0回答:1

我想测试一个使用

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
在每次从测试函数中调用它时执行?

python mocking pytest joblib
1个回答
0
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.