У меня есть кусок кода, сидящего в модуле, как это:Используйте макет для заплаты сна в единичном испытании
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()
Вы можете попробовать перемещение 'от xyz..' линии только после того, как 'с патчем ...' один? – rodrigo
Похоже, этот код будет работать ... вы уверены, что это эквивалентно коду, который не работает для вас? – augurar
@rodrigo Ваш трюк работает. Но как это сделать для каждого модульного теста? И тогда возникает вопрос, как следует исправить функцию сна, импортированную в этом модуле, но не импортированную в модульный тест? – user1537085