我是使用 MagicMock 在 python 中进行单元测试的新手。我有以下代码来断言 python 中正确的方法计数:
def methodFoo(self):
for booObject in self.booObjectList:
booObject.shooMethod()
我希望在单元测试代码中执行方法 shooMethod()
的断言调用计数,以查看是否对 booObjectList
中的 N 个对象执行 N 个调用。上面的函数不是我的单元测试代码。这是一个通过在我的单元测试类中创建新方法 test_methodFoo()
来测试的方法。我该怎么办?感谢您的帮助。
最佳答案
Mock
对象有一个属性 called
跟踪 Mock 是否被调用,以及属性 call_count
跟踪他们被调用的次数。
def test_methodFoo(self):
self.object_under_test.methodFoo()
self.assertTrue(all([booObject.shooMethod.called for
booObject in self.object_under_test.booObjectList]))
但请注意,您不能执行以下操作:
for o in list_of_four_o_mocks:
o.mocked_method()
self.assertEqual(o.mocked_method.call_count, 4)
因为 o
每次都是一个新对象。
关于python - 如何使用方法 MagicMock 对象列表并获取断言计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30809038/