gpt4 book ai didi

python - 我的单元测试报告失败(AssertionError : List differ) but they don't appear to differ, 为什么?

转载 作者:行者123 更新时间:2023-12-01 06:05:18 25 4
gpt4 key购买 nike

这是我的单元测试代码:

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)

这是失败消息:

AssertionError: Lists differ: [Object(name='ClassA', meth... != [Object(name='ClassA', meth...

First differing element 0:
Object(name='ClassA', methods=2, lines=5, description=None)
Object(name='ClassA', methods=2, lines=5, description=None)

[Object(name='ClassA', methods=2, lines=5, description=None),
Object(name='ClassB', methods=1, lines=3, description=None),
Object(name='ClassC', methods=0, lines=2, description=None)]

我无法从这条消息中找出列表之间的区别,有人对此有一些见解吗?

最佳答案

你必须告诉Python如何判断两个对象是否相等。您可以通过向类添加 __eq__ 函数来实现此目的

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

然后通过此测试的对象将被视为相等。默认情况下,对象的相等性测试为左即右,仅当它们是同一对象而不是具有相同值的两个对象时才为真。

关于python - 我的单元测试报告失败(AssertionError : List differ) but they don't appear to differ, 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8281732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com