我希望能够对一个属性函数进行多次调用,每次调用都返回不同的结果。
在下面的例子中,我希望第一次调用increment时返回5,第二次调用返回10。
例如:
import mock
class A:
def __init__(self):
self.size = 0
def increment(self, amount):
self.size += amount
return amount
@mock.patch("A.increment")
def test_method(self, mock_increment):
def diff_inc(*args):
def next_inc(*args):
#I don't know what belongs in __some_obj__
some_obj.side_effect = next_inc
return 10
return 5
mock_increment.side_effect = diff_inc
下面的页面几乎拥有我所需的一切,但它假设调用者将是一个名为“mock”的对象,但这不能假设。
http://mock.readthedocs.org/en/latest/examples.html#multiple-calls-with-different-effects