欢迎访问宙启技术站
智能推送

如何使用TestCase()来验证函数的输出是否符合预期

发布时间:2023-12-23 01:19:09

TestCase() 是 unittest 提供的一个类,用于验证函数的输出是否符合预期。以下是使用 TestCase() 的步骤:

1. 导入 unittest

import unittest

2. 创建一个继承自 unittest.TestCase 的测试类

class TestMyFunction(unittest.TestCase):
    pass

3. 在测试类中定义测试函数,函数名称以 "test_" 开头

def test_my_function(self):
    pass

4. 在测试函数中调用待测试的函数,并使用断言方法对函数的输出进行验证

def test_my_function(self):
    result = my_function(argument)
    self.assertEqual(result, expected_output)

其中,my_function 是待测试的函数,argument 是函数的输入参数,result 是函数的输出结果,expected_output 是预期的输出结果。self.assertEqual() 是 unittest 提供的一个断言方法,用于判断两个值是否相等。

以下是一个完整的示例,假设我们有一个函数 add_two_numbers(),用于计算两个数的和:

def add_two_numbers(a, b):
    return a + b

class TestAddTwoNumbers(unittest.TestCase):
    def test_add_two_numbers(self):
        result = add_two_numbers(2, 3)
        self.assertEqual(result, 5)

        result = add_two_numbers(0, 0)
        self.assertEqual(result, 0)

        result = add_two_numbers(-5, 5)
        self.assertEqual(result, 0)

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

在该示例中,我们定义了一个测试类 TestAddTwoNumbers,其中定义了一个测试函数 test_add_two_numbers。在该测试函数中,分别对 add_two_numbers 函数的三种情况进行了判断:2+3 的结果是否等于 5,0+0 的结果是否等于 0,以及 -5+5 的结果是否等于 0。

在代码的最后,通过 unittest.main() 来运行所有的测试函数。

运行上述代码,将得到以下输出:

.
----------------------------------------------------------------------
Ran 1 test in 0.001s

OK

输出中的 "." 表示测试通过,即函数的输出结果符合预期。如果测试未通过,则会显示对应的错误信息。

使用 TestCase() 可以很方便地验证函数的输出是否符合预期。只需在测试函数中调用函数并使用合适的断言方法进行验证即可。