Python 如何测试程序或组件
要测试Python程序,请使用Python中的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'])
# check that s.split fails when the separator is not a string
with self.assertRaises(TypeError):
s.split(2)
if __name__ == '__main__':
unittest.main()
输出
...
----------------------------------------------------------------------
Ran 3 tests in 0.000s
OK
在上面的示例中,我们成功地运行了测试。每个测试的根是调用assertEqual()来检查预期结果−
- assertTrue()或assertFalse()来验证一个条件;或
- assertRaises()来验证是否引发了特定的异常
极客笔记