Podczas pisania testów dla mojej klasy napotkałem interesujący prosty problem. Chciałbym potwierdzić DictEqual dwa słowniki zawierające pewną listę. Ale ten list nie mogą być klasyfikowane w ten sam sposób -> co skutkuje nieudanej próbiePython unittest - potwierdzanie słownika z listami
Przykład:
def test_myobject_export_into_dictionary(self):
obj = MyObject()
resulting_dictionary = {
'state': 2347,
'neighbours': [1,2,3]
}
self.assertDictEqual(resulting_dictionary, obj.exportToDict())
to nie od czasu do czasu, w zależności od kolejności elementów na liście
FAIL: test_myobject_export_into_dictionary
------------------------------------
- 'neighbours': [1,2,3],
+ 'neighbours': [1,3,2],
Jakieś pomysły, jak to potwierdzić w prosty sposób?
Myślałem o używaniu set
zamiast list
lub sortowania list przed porównaniem.
Jeśli masz wiele przypadków tego problemu, polecam sprawdzenie odpowiedzi [@Jon Reid] (http://stackoverflow.com/a/14493005/881224). – Droogans