单元测试如何捕获异常
时间: 2024-02-21 18:35:23 浏览: 94
在单元测试中捕获异常可以使用try-except语句来实现。以下是一个示例:
```python
import unittest
def divide(a, b):
if b == 0:
raise ZeroDivisionError("除数不能为零")
return a / b
class MyTestCase(unittest.TestCase):
def test_divide(self):
self.assertEqual(divide(10, 2), 5)
# 捕获异常并断言异常类型和消息
with self.assertRaises(ZeroDivisionError) as context:
divide(10, 0)
self.assertEqual(str(context.exception), "除数不能为零")
if __name__ == '__main__':
unittest.main()
```
在这个示例中,`divide()`函数用于实现除法运算,如果除数为0,则抛出`ZeroDivisionError`异常。在`MyTestCase`类中的`test_divide()`方法中,我们使用`self.assertRaises()`方法来捕获`ZeroDivisionError`异常,并断言异常的类型和消息。这样,如果代码中出现了除以0的情况,单元测试将会通过。
注意:在编写单元测试时,应该覆盖各种可能的异常情况,并确保预期的异常被正确捕获和处理。
阅读全文