【发布时间】:2020-03-13 16:28:05
【问题描述】:
我正在创建我的第一个测试脚本(耶!)我有一个字典列表,其中一个键是一个列表。如果列表(在字典中)按任何顺序排列,我希望通过测试。我知道您可以使用assertCountEqual 来检查列表是否相等,而不管顺序如何,但是您可以对包含列表字典的列表执行此操作吗?见下例
会成功
def test(self):
output = [2,1]
desired_output = [1,2]
self.assertCountEqual(output, desired_output)
会失败
def test(self):
desired_output = [{'count': 2, 'columns': ['col2', 'col5']}]
output = [{'count': 2, 'columns': ['col5', 'col2']}]
self.assertCountEqual(output, desired_output)
谢谢
【问题讨论】:
-
您需要在字典中使用列表吗?如果顺序不重要,为什么不换成套呢?
-
您可以尝试对每个列表进行排序。每当你有很多差异时——无论是否在单元测试中——排序总是需要考虑的。 @dspencer - 重复项会在一组中丢失,导致错误相等。
-
很好的电话@dspencer。我不需要使用列表。套装也适合我
标签: python python-3.x unit-testing python-unittest