如何“重置”返回生成器的方法。如果我模仿这个方法,但是在一个被测试的方法中使用父类两次,第一次调用消耗生成器,第二次调用没有数据。下面是示例代码。两个获取_值的调用应该返回相同的(模拟)列表。在
import mock
class MyTestClass(object):
def __init__(self, param):
self.param = param
def get_values(self):
return self.param
class MyTestRunner(object):
def __init__(self):
pass
def run(self):
cls = MyTestClass(2)
print list(cls.get_values())
cls = MyTestClass(3)
print list(cls.get_values())
with mock.patch.object(MyTestClass, 'get_values') as mock_class:
mock_class.return_value = ({'a': '10', 'b': '20'}).iteritems()
m = MyTestRunner()
m.run()
期望:
^{pr2}$实际:
[('a', '10'), ('b', '20')]
[]
怎么样?在
每次通话都会产生副作用,因此每次都会重现。在
你甚至可以像这样事先设定好口诀
^{pr2}$side_effect的返回值是调用的结果。在
相关问题 更多 >
编程相关推荐