【发布时间】:2026-01-28 23:05:01
【问题描述】:
我有一段代码位于这样的模块中:
MyWorker.py:
from gevent import sleep
class MyWorker(object):
def run(self):
for _ in range(10):
do_something()
sleep(1)
然后我想在模拟睡眠时测试这个。我尝试了多种方法,但都失败了。我认为应该可行的一种方法:
from mock import patch
from x.y.z.MyWorker import MyWorker
class TestWorker(unitest.testCase):
def Test_my_worker(self):
with patch('x.y.z.MyWorker.sleep'):
a = MyWorker()
a.run()
【问题讨论】:
-
您可以尝试将
from x.y.z...行移到with patch...之后吗? -
看起来这段代码可以工作......你确定这相当于不适合你的代码吗?
-
@rodrigo 你的把戏奏效了。但是我应该如何为每个单元测试做呢?然后问题是我应该如何修补在该模块中导入但在单元测试中没有导入的睡眠功能?
标签: python unit-testing mocking