擅长:python、mysql、java
<p>我解决了这个问题。我将类<code>TestCalling()</code>中的方法<code>function1_mock(self, parameter)</code>转换为函数<code>function1_mock(parameter)</code>。这是正确的。
完整代码:</p>
<pre class="lang-py prettyprint-override"><code># application.py
def function1(parameter1):
print('o f1')
return parameter1
def function2(parameter2):
print('o f2')
return function1('function11') + parameter2
</code></pre>
<pre class="lang-py prettyprint-override"><code># test_application.py
import unittest
import unittest.mock
import application
class TestCalling(unittest.TestCase):
def function1_mock(parameter):
print('function1_mock')
return parameter
@unittest.mock.patch('application.function1', side_effect=function1_mock)
def test_function2(self, mock_function):
self.assertEqual(application.function2('function2'), 'function1function2')
if __name__ == '__main__':
unittest.main()
</code></pre>
<p>致DroidX86:谢谢你的提示。你知道吗</p>