如何测试 Python 函数是否抛出异常?
pythonserver side programmingprogramming更新于 2026/2/5 15:40:17
我们编写了一个单元测试,只有当函数未抛出预期的异常时,该单元测试才会失败。
我们还测试 Python 函数是否抛出异常。
例如,请参阅我们粘贴到 Python shell 中以测试 Python 类型安全性的示例代码:
示例
import unittest class MyTestCase(unittest.TestCase): def test_1_cannot_add_int_and_str(self): with self.assertRaises(TypeError): 1 + '1' def test_2_cannot_add_int_and_str(self): import operator self.assertRaises(TypeError, operator.add, 1, '1') unittest.main(exit=False)
运行测试
输出
终端输出以下 −
.. ---------------------------------------------------------------------- Ran 2 tests in 0.001s OK
测试一使用 assertRaises 作为上下文管理器,确保在记录的同时正确捕获和清理错误。
我们也可以不使用上下文管理器来编写它,参见测试二。第一个参数是你期望引发的错误类型,第二个参数是你要测试的函数,其余的参数和关键字参数将传递给该函数。
使用上下文管理器要简单得多,而且可读性也更强。
我们看到,正如我们所料,尝试将 1 和 '1' 相加会导致 TypeError。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

