我試圖運行此測試:self.assertRaises(AttributeError, branch[0].childrennodes)
和branch[0
]沒有屬性childrennodes
,所以它應該拋出一個AttributeError
,assertRaises
應該捕獲,但是當我運行測試時,測試失敗,因爲它是投擲一個AttributeError
。爲什麼assertRaises使用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'
任何想法?
這就是正確的解決方案,但發生異常時Python將參數收集到'self.assertRaises'。它必須在調用函數之前評估'branch [0] .childrennodes'',這會引發異常,就像預期的那樣。 – 2009-08-13 19:46:56
unittest也有類似的功能。我用自己的回答描述了他們。擁抱! – 2010-09-23 16:38:31