4
我一直在使用mock
库来做我的一些测试。到目前为止,这一切都很棒,但还有一些我还没有完全理解的东西。蟒蛇 - 访问对象与修补程序嘲笑
mock
提供使用patch
打补丁的整个方法的一个很好的方式,我可以访问修补对象的方法,像这样:
@patch('package.module')
def test_foo(self, patched_obj):
# ... call patched_obj here
self.assertTrue(patched_obj.called)
我的问题是,我该如何访问一个补丁的对象,如果我在整个课堂上使用patch
修饰器?
例如:
@patch('package.module')
class TestPackage(unittest.TestCase):
def test_foo(self):
# how to access the patched object?
啊,是的,谢谢!我应该先检查一下。这种情况下的排序是如何确定的?另外,是否可以在第一个打过补丁的模块上应用另一个补丁(例如,如果''package.module''有几个具有不同返回值的对象,我想模拟它们)? – bow 2012-03-18 12:14:41
我已经更新了答案。您可以根据需要使用尽可能多的修补程序修饰器。 – bereal 2012-03-18 12:19:49
真棒,谢谢:)! – bow 2012-03-18 12:22:27