unittest中是否有一种“体面”的方法来检查两个iterable对象内容的相等性? 我使用了很多元组、列表和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函数)也不会失败。
Python3
Python>;=2.7
您始终可以将自己的断言方法添加到TestCase类中:
或者看看2.7是如何定义它的:http://hg.python.org/cpython/file/14cafb8d1480/Lib/unittest/case.py#l621
在我看来,你关心的是序列中项目的顺序。因此,
assertItemsEqual
/assertCountEqual
不适合您。在Python2.7和Python3中,您需要的是^{} 。这对物品的顺序很敏感。
相关问题 更多 >
编程相关推荐