将wraps
与unittest.mock.patch
配合使用可以 spy 模拟功能而无需修改行为。稍后可以检查将哪些值传递给该函数,但是我看不到每种情况下该函数返回什么。
有什么方法可以做到(无需编写自己的结果跟踪器)?
请参阅下面的代码以供参考:
In [1]: class Go:
...: def m(x):
...: return 1 + x
...:
In [2]: from unittest import mock
In [3]: m=mock.patch('__main__.Go.m', wraps=Go.m)
In [4]: me=m.__enter__()
In [5]: Go().m(4)
Out[5]: 5
In [6]: me.call_args_list
Out[6]: [call(4)]
我想要类似的东西:
In [6]: me.call_list
Out[6]: [call(args=(4,), result=5)]