擅长:python、mysql、java
<p>当您使用来自<code>unittest.mock</code>包的<code>patch</code>装饰器时,您不是在修补模块从中导入的命名空间(在本例中为<code>app.my_module.get_user_name</code>),而是在测试<code>app.mocking.get_user_name</code>下的命名空间中修补它</p>
<p>要使用<code>Mock</code>执行上述操作,请尝试以下操作:</p>
<pre><code>from mock import patch
from app.mocking import test_method
class MockingTestTestCase(unittest.TestCase):
@patch('app.mocking.get_user_name')
def test_mock_stubs(self, test_patch):
test_patch.return_value = 'Mocked This Silly'
ret = test_method()
self.assertEqual(ret, 'Mocked This Silly')
</code></pre>
<p>标准库文档包括一个有用的<a href="https://docs.python.org/3/library/unittest.mock.html#where-to-patch" rel="noreferrer">section</a>来描述这一点</p>