Как утверждать, что список содержит список, содержащий элементы (где элементы списка не следуют никакому порядку)? - PullRequest
1 голос
/ 24 сентября 2019

Я знаю о нескольких подходах к модульному тестированию значения списка в python:

  1. AssertEqual
  2. AssertListEqual
  3. AssertCountEqual

Из вышеперечисленного 1-й и 2-й сбой при изменении порядка элементов.

Так что третий вариант, который игнорирует порядок сортировки, полезен для проверки значений списка.

Вопрос: существует ли assert , равный эквиваленту тестовому дикту, содержащему список (где элементы списка не следуют какому-либо порядку)?

Пример: {'StatusCode':'ERR','Msg':'Error on processing','CustomerIds': [44,11,23,5,23]}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Вы можете попробовать это:

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()

первый путь подтверждения будет - второй сбой

0 голосов
/ 24 сентября 2019

Это то, что вы ищете?

>>> 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
...