我试图运行此测试: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