擅长:python、mysql、java
<p>您可以将<a href="https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.side_effect" rel="noreferrer">^{<cd1>}</a>设置为原始方法。在</p>
<pre><code>from unittest.mock import MagicMock
class A():
def tmp(self):
print("hi")
def b(a):
a.tmp()
a = A()
a.tmp = MagicMock(side_effect=a.tmp)
b(a)
a.tmp.assert_called()
</code></pre>
<p>当<code>side_effect</code>是一个函数(或在本例中是一种函数的绑定方法)时,调用<code>Mock</code>也将使用相同的参数调用{<cd2>}。在</p>
<p><code>Mock()</code>调用将返回<code>side_effect</code>返回的任何内容,除非它返回<a href="https://docs.python.org/3/library/unittest.mock.html#unittest.mock.DEFAULT" rel="noreferrer">^{<cd7>}</a>单例。然后它将返回<a href="https://docs.python.org/3/library/unittest.mock.html#unittest.mock.Mock.return_value" rel="noreferrer">^{<cd8>}</a>。在</p>