用模拟来捕获结果

时间:2018-10-31 11:04:22

标签: python mocking pytest python-unittest.mock

wrapsunittest.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)]

0 个答案:

没有答案