Python测试异常

示例

例如,如果输入错误,程序将抛出错误。因此,需要确保在给出实际错误输入时引发错误。因此,我们需要检查确切的异常,对于本示例,我们将使用以下异常:

class WrongInputException(Exception):

    pass

在以下情况下,当我们始终期望输入数字作为文本输入时,如果输入错误,则会引发此异常。

def convert2number(random_input):

    try:

        my_input = int(random_input)

    except ValueError:

        raise WrongInputException("预期为整数!")

    return my_input

为了检查是否引发了异常,我们使用assertRaises该异常进行检查。assertRaises可以以两种方式使用:

  1. 使用常规函数调用。第一个参数采用异常类型,第二个参数采用可调用(通常是函数),其余参数传递给该可调用。

  2. 使用with子句,仅将异常类型赋予函数。这样做的好处是可以执行更多代码,但应谨慎使用,因为多个功能可能会使用相同的异常(这可能会带来问题)。一个示例:with :convert2number(“ not a number”)self.assertRaises(WrongInputException)

首先在以下测试案例中实现了这一点:

import unittest

class ExceptionTestCase(unittest.TestCase):

    def test_wrong_input_string(self):

        self.assertRaises(WrongInputException, convert2number, "not a number")

    def test_correct_input(self):

        try:

            result = convert2number("56")

            self.assertIsInstance(result, int)

        except WrongInputException:

            self.fail()

也可能需要检查不应抛出的异常。但是,抛出异常时,测试将自动失败,因此可能根本没有必要。仅显示选项,第二种测试方法显示了一种情况,即如何检查不抛出异常。基本上,这是捕获异常,然后使用该fail方法使测试失败。

以上是 Python测试异常 的全部内容, 来源链接: utcz.com/z/321331.html

回到顶部