在这个示例中,我们定义了一个名为 add 的函数,然后使用 unittest.TestCase 来编写测试用例。我们编写了三个测试用例来测试 add 函数,每个测试用例都使用 assertEqual 来验证函数的输出是否符合预期。最后,我们使用 unittest.main() 来运行测试用例。
运行结果:
.
----------------------------------------------------------------------
Ran 1 test in 0.000s
OK
集成测试
集成测试是指测试多个组件或模块之间的相互协作是否正常。它可以确保系统各个部分之间的交互正确无误。在 Python 中,我们可以使用类似于单元测试的方式来进行集成测试,只不过需要测试的不是单个函数或方法,而是整个系统或模块。
以下是一个示例,展示如何使用 Python 的 unittest 模块来进行集成测试:
import unittest
class MyTest(unittest.TestCase):
def test_one(self):
self.assertEqual(1 + 1, 2)
class MyOtherTest(unittest.TestCase):
def test_two(self):
self.assertEqual(2 + 2, 4)
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(MyTest))
suite.addTest(unittest.makeSuite(MyOtherTest))
runner = unittest.TextTestRunner()
runner.run(suite)
在这个示例中,我们定义了两个测试类,每个测试类都有一个测试方法。然后,我们创建了一个 TestSuite 对象,并使用 addTest 方法将两个测试类添加到测试套件中。最后,我们使用 TextTestRunner 对象来运行测试套件。
运行结果:
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
断言
断言是一种验证代码是否符合预期的方法。在Python 中,我们可以使用 assert 语句来编写断言。assert 语句接受一个表达式作为参数,如果表达式的结果为 False,则会抛出 AssertionError 异常。
以下是一个简单的示例,展示如何使用 assert 语句来编写断言:
def divide(a, b):
assert b != 0, "division by zero"
return a / b
print(divide(4, 2))
print(divide(4, 0))
在这个示例中,我们定义了一个名为 divide 的函数,它将两个数字相除。我们使用 assert 语句来确保分母不为零。在第二次调用函数时,由于分母为零,assert 语句将抛出 AssertionError 异常。
运行结果:
2.0
Traceback (most recent call last):
File "assert_example.py", line 7, in <module>
print(divide(4, 0))
File "assert_example.py", line 2, in divide
assert b != 0, "division by zero"
AssertionError: division by zero