擅长:python、mysql、java
<p>第一个例子表明f1()和f2()是在同一个模块中定义的。
因此,以下措施应起作用:</p>
<pre><code>from foo.bar import f2
from mock import patch
class MyTest(TestCase):
@patch('foo.bar.f1')
def test_f2_2(self, some_func):
some_func.return_value = (20, False)
num, stat = f2()
self.assertEqual((num, stat), (40, False))
</code></pre>
<p>修补程序与导入程序位于同一位置:<code>@patch('foo.bar.f1')</code></p>
<p>在这个问题上有一个很好的答案:</p>
<p><a href="http://bhfsteve.blogspot.nl/2012/06/patching-tip-using-mocks-in-python-unit.html" rel="noreferrer">http://bhfsteve.blogspot.nl/2012/06/patching-tip-using-mocks-in-python-unit.html</a></p>