如何在函数上使用mock.patch
,因此我可以访问方法.assert_called
等,同时我仍然可以保留函数的原始功能?
以下是示例代码:
from unittest import mock
def foo(arg):
print(arg)
def tested():
foo('hi')
@mock.patch('__main__.foo')
def test(foo):
tested()
foo.assert_called_once()
test()
我希望它测试foo
函数是否只调用一次,但我仍然需要它来打印hi
。
答案 0 :(得分:0)
喔。我已经解决了。我只需要将参数side_effect
添加到装饰器: - )
像这样:
@mock.patch('__main__.foo', side_effect=foo)
def test(foo):
...