Nic*_*ner 1 python google-app-engine unit-testing
我对我的GAE应用进行了单元测试:
def test_getNeighborhoodKeys_twoCourses(self):
cs1110, cs2110 = testutils.setUpSimpleCourses()
foo = getFooResult()
bar = getBarResult()
self.assertEquals(foo, bar) # fails
Run Code Online (Sandbox Code Playgroud)
这是失败:
AssertionError: set([CS 1110: Untitled, CS 2110: Untitled]) != set([CS 2110: Untitled, CS 1110: Untitled])
Run Code Online (Sandbox Code Playgroud)
在我看来,测试应该通过.出了什么问题?
看起来像属于集合的项目foo和bar一些非常时髦的类型覆盖__repr__- 否则,对于普通类型,会有引号来明确说明这些括号内的内容.因此,该类型还必须覆盖__eq__以确定相等条件(否则,默认情况下,两个实例仅在它们是同一实例时才相等).你也可以覆盖__cmp__,但这是一个相当陈旧和尘土飞扬的方法 - 特定的比较,如__eq__现在非常受欢迎!
如果你覆盖__eq__(或者__cmp__就此而言)确保也要覆盖,__hash__因为两个比较相等的实例也具有完全相同的散列是至关重要的,否则使用这些实例作为集合的成员,或者在字典中使用密钥,在非常困难中行为不端预测方式.
| 归档时间: |
|
| 查看次数: |
162 次 |
| 最近记录: |