问题描述
我有一个函数可以从data.json
中定义的models.py
文件中加载数据,如下所示:
def load_data():
file_path = Path(__file__).parent / 'data.json'
with open(file_path,'r') as file:
data = json.load(file)['data']
return data
loaded_data = load_data()
在loaded_data
中定义的所有功能中,我都使用models.py
。 data.json
文件包含一个JSON数组。
我的test_models.py
如下:
from unittest.mock import patch
from models import ... (a list of function to test)
# For replaceing model.load_data()
mock_data = []
def get_mock_data():
return mock_data
@patch('models.load_data',side_effect= get_mock_restaurants)
class TestRestaurantsModel(unittest.TestCase):
但是,仍然以某种方式执行真实的models.load_data
。我知道这是因为我将file_path
更改为randomabc.json
并得到了FileNotFoundError
。如何防止执行models.load_data
?我基本上不需要模拟models.load_data
。我只需要阻止它在测试期间执行,并向models.data
分配一个模拟数据即可。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)