Python 不使用unittest执行模拟函数

Python 不使用unittest执行模拟函数,python,python-unittest,Python,Python Unittest,我有一个函数,可以从models.py中定义的data.json文件加载数据,如下所示: 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() from unitt

我有一个函数,可以从
models.py
中定义的
data.json
文件加载数据,如下所示:

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()
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.py
中定义的所有功能中使用了
加载的\u数据。
data.json
文件包含一个json数组

我的
test_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()
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):

然而,真正的
模型.load\u data
仍然会执行。我知道这一点,因为我将
文件路径
更改为
randomabc.json
,并获得了
FileNotFoundError
。如何防止执行
模型。加载数据
?我不需要模拟
模型。基本上加载数据。我只需要在测试期间阻止其执行,并将模拟数据分配给
模型。数据

请提供
加载数据
功能。你在哪里定义它?我没有看到您在函数中调用
load\u data
。我编辑了。请查收。