【发布时间】:2022-01-18 19:51:41
【问题描述】:
我有一个 Pycharm 项目,其中包含一些正在测试的包代码,我可以从项目中的另一个模块导入像 import my_package 这样的包,因为 Pycharm 将 python 配置为将 projectdir 包含到它的搜索路径中。
my_package 中的 my_module 导入 time 并使用 time.sleep,我想模拟一下。
projectdir/my_package
__init__.py
my_module.py
projectdir/tests
test_my_package.py
在测试中我有以下代码:
import unittest
from unittest.mock import patch
from my_package import my_module
@patch("my_package.my_module.time.sleep")
class TestMyPackage(unittest.TestCase):
def test_bla(self, timepatch):
my_module.my_function()
我遇到的问题是,time.sleep 没有被模拟出来。我的单元测试每个测试用例需要大约 0.5 秒,这实在是太多了。我想我在错误的地方打补丁。
你能帮我修复@patch("my_package.my_module.time.sleep") 装饰器吗?
【问题讨论】:
标签: python-3.x unit-testing import mocking sleep