unittest 8 断言异常(assertRaises)

Posted candyyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unittest 8 断言异常(assertRaises)相关的知识,希望对你有一定的参考价值。

背景

我们有时候需要断言一些方法会抛出异常,这些异常需要符合我们的预期。

代码

新建test_exception.py文件,内容如下

import unittest

class DivZeroTestCase(unittest.TestCase):

    def test_should_raise_exception(self):
        with self.assertRaises(ZeroDivisionError):
            1 / 0

if __name__ == ‘__main__‘:
    unittest.main()

运行及结果

$ python test_exception.py
.
----------------------------------------------------------------------
Ran 1 test in 0.000s

OK

我们能学到什么

  • 上面的例子断言了当0作为除数的时候会抛出ZeroDivisionError
  • 断言异常是有套路的,使用with语句加assertRaises,assertRaises的参数中传入预期的异常(这些异常可能需要先import进来),在with的子句中放上会抛出异常的语句或表达式

参考

http://www.testclass.net/pyunit/assert_raise

 

断言异常方法,实际运行的时候发生期望的异常,属于测试通过。

 

以上是关于unittest 8 断言异常(assertRaises)的主要内容,如果未能解决你的问题,请参考以下文章

python unittest之断言及示例

Unittest 框架之断言,你学会了吗??

unittest断言判断

pytest学习和使用5-Pytest和Unittest中的断言如何使用?

python unittest 将断言与上下文管理器结合起来

unittest-前后置和断言