使用`assertRaises`时如何指定特定的异常实例?
How to specify specific instance of exception when using `assertRaises`?
我有一个自定义异常:
class AError(Exception):
def __init__(self, a):
self.a = a
以及引发此异常的函数:
def raise_a(self):
raise AError(1)
使用 unittest
,我如何测试 raise_a
用 a == 1
加注 AError
?使用:
self.assertRaises(AError, raise_a)
如果 AError
的任何实例(例如 AError(2)
)被引发, 将通过,但我希望它在 a != 1
.
时失败
使用 assertRaises
作为上下文管理器可以让您访问捕获的异常:
with self.assertRaises(AError) as cm:
raise_a()
self.assertEqual(cm.exception.a, 1)
我有一个自定义异常:
class AError(Exception):
def __init__(self, a):
self.a = a
以及引发此异常的函数:
def raise_a(self):
raise AError(1)
使用 unittest
,我如何测试 raise_a
用 a == 1
加注 AError
?使用:
self.assertRaises(AError, raise_a)
如果 AError
的任何实例(例如 AError(2)
)被引发, 将通过,但我希望它在 a != 1
.
使用 assertRaises
作为上下文管理器可以让您访问捕获的异常:
with self.assertRaises(AError) as cm:
raise_a()
self.assertEqual(cm.exception.a, 1)