如何测试Python函数是否抛出异常?

如何测试Python函数是否抛出异常?

我们编写一个单元测试,仅在函数未抛出预期异常时失败。

我们也测试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作为上下文管理器,确保错误被正确捕获和清理,同时记录下来。

我们也可以写一个没有上下文管理器的测试,见测试二。第一个参数将是您希望引发的错误类型,第二个参数将是您正在测试的函数,其余的args和关键字args将传递给该函数。

使用上下文管理器会更简单和易读。

我们看到,正如我们所期望的那样,尝试将1和’1’相加会导致TypeError。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程