不使用unittest

问题描述

我有一个函数可以从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.pydata.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 (将#修改为@)