擅长:python、mysql、java
<p>对同一个函数进行两次修补不会使它在不同的调用中返回不同的值。您可以使用<code>Mock</code>对象的<code>side_effect</code>属性,方法是使用希望函数在连续调用中返回的值列表:</p>
<pre><code>from unittest.mock import patch
@patch('builtins.input', side_effect=['dev', 'prod'])
def test_input(mock_input):
assert input() == 'dev'
assert input() == 'prod'
test_input() # this will not raise an exception since all assertions are True
</code></pre>