Sto provando a eseguire questo test: self.assertRaises(AttributeError, branch[0].childrennodes)
e branch[0
] non ha un attributo childrennodes
, quindi è necessario lanciare un AttributeError
, che deve essere rilevato da assertRaises
, ma quando eseguo il test, il test fallisce perché è lancio di un AttributeError
.Perché non è assertRaises che cattura il mio errore di attributo usando 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'
Qualche idea?
Quella è la soluzione giusta, ma l'eccezione accade quando Python raccoglie gli argomenti su 'self.assertRaises'. Deve valutare 'branch [0] .childrennodes' prima di chiamare la funzione, il che solleva un'eccezione proprio come previsto. –
unittest ha anche caratteristiche simili. Li ho descritti nella mia risposta. Abbracci! –