对asserDictEqual中的列表使用assertCountEqual?

时间:2017-02-02 12:19:11

标签: python python-unittest

我是单元测试的新手,我正在尝试运行测试以检查两个字典是否相同而不考虑值中元素的顺序。当我在尝试时:

import unittest
dic1 = {'key': [1,2]}
dic2 = {'key': [2,1]}

class TestExample (unittest.TestCase):

def test_dicEqual(self):
    self.assertDictEqual(dic1, dic2)

tester = TestExample()
tester.test_dicEqual()

我明白了:

AssertionError                            Traceback (most recent call last)
AssertionError: {'key': [1, 2]} != {'key': [2, 1]}
- {'a': [1, 2]}
?         ---

+ {'a': [2, 1]}
?        +++

有没有办法检查字典的内容而不考虑订单?现在我提出的解决方案是迭代字典的键:

def test_dictequal_iterate(self):
    for key, value in dic1 :
        self.assertCountEqual(value, dic2[key])

但是这个解决方案并不像assertDictEqual那样返回一个清晰的概述。

1 个答案:

答案 0 :(得分:0)

我不确定这是最好的方法,但您可以试试这个:

Navigation Bar