Próbuję uruchomić ten test: self.assertRaises(AttributeError, branch[0].childrennodes)
i branch[0
] nie posiada atrybut childrennodes
, więc powinno być rzuca AttributeError
, których assertRaises
powinien złapać, ale kiedy uruchomić test, test nie powiedzie się, ponieważ jest rzucanie AttributeError
.Dlaczego funkcja assertRaises nie przechwytuje mojego błędu atrybutu przy użyciu python unittest?
Traceback (most recent call last):
File "/home/tttt/../tttt/tests.py", line 504, in test_get_categories_branch
self.assertRaises(AttributeError, branch[0].children_nodes)
AttributeError: 'Category' object has no attribute 'children_nodes'
Jakieś pomysły?
Ów odpowiedniego rozwiązania, ale wyjątek dzieje, gdy Python zbiera argumenty do 'self.assertRaises'. Musi ocenić 'branch [0] .childrennodes' przed wywołaniem funkcji, która podnosi wyjątek zgodnie z oczekiwaniami. –
unittest ma podobne funkcje. Opisałem je w mojej własnej odpowiedzi. Uściski! –