首页 > 解决方案 > 如何模拟在 python 文件的全局范围内初始化的对象?

问题描述

我有以下作为我要测试的python文件的内容

#service_lambdas\series_service.py
from common.connection import DBUtils

dbutils = DBUtils()

def get_series():
    return dbutils.get_all(SERIES_SQL)

我想测试 get_series,我尝试使用以下代码段


from unittest import TestCase, main
from unittest.mock import Mock

from service_lambdas.series_service import get_series, SERIES_SQL


class TestSeriesService(TestCase):

    @patch("service_lambdas.series_service.DBUtils")
    def test_should_getSeries(self, DBUtils_mock):
        # given
        dbutils_mock = DBUtils_mock.return_value = Mock()

        # when
        get_series()

        # then
        dbutils_mock.get_all.assert_called_once_with(SERIES_SQL)

我只想让 DBUtils 类被嘲笑。

标签: pythonpython-unittest.mock

解决方案


推荐阅读