googleappengineunittest:AssertEquals的困难

2024-05-16 01:52:51 发布

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

我有一个GAE应用程序的单元测试:

def test_getNeighborhoodKeys_twoCourses(self):
            cs1110, cs2110 = testutils.setUpSimpleCourses()

            foo = getFooResult()
            bar = getBarResult()

    self.assertEquals(foo, bar) # fails

这就是失败:

^{pr2}$

在我看来,考试应该通过。怎么了?在


Tags: testself应用程序foodefbar单元测试testutils
1条回答
网友
1楼 · 发布于 2024-05-16 01:52:51

看起来属于集合foobar的项是某种非常时髦的类型,它覆盖了__repr__否则,对于普通类型,会有引号来明确这些括号内到底是什么。因此,该类型还必须重写__eq__以确定相等条件(否则,默认情况下,两个实例只有在它们是相同的实例时才是相等的)。您也可以替代__cmp__,但这是一个非常古老且充满灰尘的方法,特别是像{}这样的比较在当今是非常受欢迎的!在

如果您确实重写了__eq__(或者__cmp__),那么一定要覆盖__hash__,因为比较相等的两个实例也有完全相同的散列值,这一点很重要,否则,将这些实例用作集的成员或字典中的键,会以非常难以预测的方式出现错误行为。在

相关问题 更多 >