1
我有一个单元测试,我的GAE应用程序:谷歌App Engine的单元测试:困难的assertEquals
def test_getNeighborhoodKeys_twoCourses(self):
cs1110, cs2110 = testutils.setUpSimpleCourses()
foo = getFooResult()
bar = getBarResult()
self.assertEquals(foo, bar) # fails
这是失败的:
AssertionError: set([CS 1110: Untitled, CS 2110: Untitled]) != set([CS 2110: Untitled, CS 1110: Untitled])
它看起来对我来说,测试应该通过。出了什么问题?
实际上,我自己覆盖'__repr__'来使调试更容易。这是一个糟糕的决定吗?如果我要重写'__str__'呢?我可以离开'__eq__'和'__hash__'吗? – 2010-06-19 19:16:26
@Rosarch,只要你希望用户编码类型的实例能够比较相同而不相同(即相同的实例),你需要重写'__eq__'(和'__hash__')提到'__repr__'的覆盖是因为可以立即在你显示的消息中发现什么,并且证明这些实例属于某种时髦的类型并且不是完全相同的实例,**不**因为覆盖有任何做平等测试本身。 – 2010-06-19 19:24:10