在 unittest 中是否有一种“体面”的方式来检查两个可迭代对象的内容是否相等? 我使用了很多元组、列表和 numpy 数组,我通常只想测试内容而不是类型。目前我只是在转换类型:
self.assertEqual (tuple (self.numpy_data), tuple (self.reference_list))
我不久前使用过这个列表推导:
[self.assertEqual (*x) for x in zip(self.numpy_data, self.reference_list)]
但是这个解决方案似乎比 typecast 有点逊色,因为它只会在失败时打印单个值,而且对于不同长度的引用和数据(由于 zip 功能)它也不会失败。
最佳答案
Python 3
- 如果你不关心内容的顺序,你有 assertCountEqual(a,b)方法
- 如果你关心内容的顺序,你有assertSequenceEqual(a,b)方法
Python >= 2.7
- 如果你不关心内容的顺序,你有 assertItemsEqual(a,b)方法
- 如果你关心内容的顺序,你有assertSequenceEqual(a,b)方法
关于python - Unittest 的 assertEqual 和 iterables - 只检查内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7473071/