import unittest
from mock import Mock, MagicMock
import time
wait = False
def pushback_callback(self, res):
print("Received callback")
wait = True
def pushback_fcn(callback):
print("pushback_fcn")
def execute():
pushback_fcn(pushback_callback)
while wait == False:
time.sleep(5)
print("done")
#********* Test code ************#
pushback_fcn = MagicMock()
execute()
字符串
由于测试代码从不调用回调,等待值总是为False,因此测试代码永远等待。有什么方法可以从MagicMock中获得函数指针?
1条答案
按热度按时间vd2z7a6w1#
我创建了一个类似的代码来测试mocking一个接收回调的函数。安装并运行
pytest
来测试它。模拟回调的方法是使用
@patch
和side_effect
(关于patch和side_effect如何工作的文档)该脚本包含两个测试,一个没有mock,一个有mock(将通过回调发送的值从
done
更改为mocked
)。字符串