我知道几种在python中对列表值进行单元测试的方法:
以上所述,如果更改项目顺序,则第一和第二失败。
因此,忽略排序顺序的第三个选项对我测试列表值很有用。
问题:是否有 assert 等于包含列表的测试字典(列表项不遵循任何顺序)?
示例:{'StatusCode':'ERR','Msg':'Error on processing','CustomerIds': [44,11,23,5,23]}
答案 0 :(得分:0)
这是您要寻找的吗?
>>> class DemoTest(unittest.TestCase):
... a = { 'test' : 4, 'test1': 5}
... b = { 'test1' : 5, 'test' : 4}
... def test_dict(self):
... self.assertDictEqual(self.a, self.b)
...
>>> DemoTest()
<__main__.DemoTest testMethod=runTest>
>>> d = DemoTest()
>>> unittest.main()
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
答案 1 :(得分:0)
您可以尝试以下方法:
d1 = {'StatusCode':'ERR','Msg':'Error on processing','CustomerIds': [44,11,23,5,23]}
d2 = {'Msg':'Error on processing','StatusCode':'ERR','CustomerIds': [44,11,23,5,23]}
d3 = {'Msg':'Error on processing','CustomerIds': [44,11,23,5,23]}
assert d1.items() == d2.items()
assert d1.items() == d3.items()
第一个断言将执行路径-第二个失败