如何测试Python程序或组件?
要测试Python程序,请使用Pygthon中的unittest模块。可以使用doctest和unittest模块或第三方测试框架来构建详尽的测试套件,以执行模块中的每一行代码。
doctest模块
doctest模块搜索看起来像交互式Python会话的文本片段,然后执行这些会话,以验证它们与所示完全相同。
unittest模块
unittest模块支持测试自动化,共享测试的设置和关闭代码,将测试聚合到集合中,并使测试独立于报告框架。
在进一步操作之前,让我们了解有关Python中测试的一些关键概念−
- 测试装置 − 它表示执行一个或多个测试所需的准备工作,以及任何关联的清理操作。
-
测试案例 − 测试案例是测试的单个单位。它检查特定输入集的特定响应。unittest提供了一个基础类TestCase,可以用于创建新的测试用例。
-
测试套件 −测试套件是测试用例,测试套件或两者的集合。它将测试聚合在一起以一起执行。
-
测试运行器 − 测试运行器是编排测试执行并向用户提供结果的组件。
现在让我们创建一个测试−
创建测试
示例
在此示例中,我们将测试Python中的某些方法
import unittest
class TestMethods(unittest.TestCase):
def test_lower(self):
self.assertEqual('AMIT'.lower(), 'amit')
def test_islower(self):
self.assertTrue('amit'.islower())
self.assertFalse('Amit'.isupper())
def test_split(self):
s = 'Demo Text'
self.assertEqual(s.split(), ['Demo', 'Text'])
# 检查在分隔符不是字符串的情况下s.split失败
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
输出
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK
在上面的示例中,我们成功运行了测试。每个测试的根是调用assertEqual()来检查预期结果−
- assertTrue()或assertFalse()来验证条件;或
- assertRaises()来验证特定异常是否被引发