我的unittest报告了一个失败(AssertionError:List different),但它们似乎没有不同,为什么?

2024-09-25 06:24:57 发布

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

这是我的单元测试代码:

def testExtractObject(self):
    self.maxDiff = None
    objects = Script("compare.py").extractObjects()
    self.assertListEqual([Object('ClassA',2,5,None),
                    Object('ClassB',1,3,None),
                    Object('ClassC',0,2,None)], objects)

以下是失败消息:

^{pr2}$

我无法从这封信中看出名单之间的区别,有人对此有所了解吗?在


Tags: 代码pyselfnoneobjectsobjectdefscript
1条回答
网友
1楼 · 发布于 2024-09-25 06:24:57

您必须告诉python如何确定两个对象是否相等。您可以通过向类中添加__eq__函数来实现这一点

class SomeObject(object):
    def __eq__(self, other):
        return self.a == other.a and self.b == other.b

通过此测试的对象将被视为相等。默认情况下,对象的相等性测试是left is right,只有当它们是同一个对象时才有效,而不是具有相同值的两个对象。在

相关问题 更多 >