我想模拟一些不重要的测试主题函数(其他函数) - time.sleep()等。
我可以用简单的模拟替换它们,这将有效。但我希望它报告错误,如果它们被调用的参数数量不正确,没有命名参数等等。
如果你的参数列表与给定的函数不同,有没有办法说mock'引发异常'?
我想模拟的函数示例:
def mockme(arg1, arg2):
pass
我想要的是什么:
>>> m = mock.CallableMock(signature=mockme)
>>> m(1,2)
<MagicMock name='mockme()' id='140435553563920'>
>>> m(1,2,3)
TypeError: <MagicMock name='mockme()' id='140435553563920'> takes exactly 2 arguments (3 given)
知道如何制作这个吗?
答案 0 :(得分:3)
看看unittest.mock.create_autospec,它应该完全符合您的要求
def some (a,b):
pass
some_mock=mock.create_autospec(some)
some_mock(1)