我有以下代码(使用Django):
def test_validation(self):
with assertRaises(ValidationError):
<do something>
with assertRaises(ValidationError):
<do something else>
但是,两个ValidationError
例外情况之间存在差异,因为我使用不同的code
值引用它们:
raise ValidationError("Some message", code='first_code')
和
raise ValidationError("Another message", code='second_code')
是否可以检查引发的异常的属性,例如在我的情况下code
属性?添加code='first_code'
似乎没有效果。
答案 0 :(得分:2)
上下文管理器将捕获的异常对象存储在其exception属性中。如果打算对引发的异常执行附加检查,这可能很有用:
with self.assertRaises(SomeException) as cm:
do_something()
the_exception = cm.exception
self.assertEqual(the_exception.error_code, 3)