如何用方法MagicMock对象列表并获取assert count

2024-09-30 08:27:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉使用MagicMock进行python单元测试。我有以下代码来断言python中正确的方法计数:

 def methodFoo(self):
       for booObject in self.booObjectList:
            booObject.shooMethod()

我希望在我的单元测试代码中执行方法shooMethod()的断言调用计数,以查看booObjectList中的N个对象是否执行N个调用。上面的函数不是我的单元测试代码。它是一个要通过在我的单元测试类中创建一个新方法test_methodFoo()来测试的方法。我该怎么做?谢谢你的帮助。在


Tags: 对象方法代码inselffordef断言
2条回答

正如亚当·斯密已经回答了你的问题,只是一个个人建议-当我开始做mocking时,我在使用mock库时也遇到了很多问题。此外,python mock不适用于pytest等其他测试客户机,所以我建议您使用fudge库。它更像Python,可以与所有测试客户机一起工作。在

Mock对象有一个跟踪Mock是否被调用的属性^{},以及一个跟踪调用次数的属性^{}。在

def test_methodFoo(self):
    self.object_under_test.methodFoo()
    self.assertTrue(all([booObject.shooMethod.called for
                         booObject in self.object_under_test.booObjectList]))

但是请注意,您不能执行以下操作:

^{pr2}$

因为o每次都是一个新对象。在

相关问题 更多 >

    热门问题