使用 Unittest 在 Python 中进行单元测试
在本文中,我们将借助 Python 3.x 或更早版本中提供的单元测试模块了解软件测试的基础知识。 它允许自动化、共享测试的设置和退出代码以及每个框架的独立测试。
在单元测试中,我们使用各种面向对象的概念。我们将在这里讨论一些主要使用的概念。
Testcase − 它是根据给定的一组输入响应特定的基类。我们使用单元测试的基类,即"TestCase"来实现此操作。
Testsuite − 它用于将测试用例组合在一起并同时执行它们。
Testrunner −它遵循基于结果的任务执行。它涉及在执行任务后显示结果。
测试装置 − 它作为相关环境中测试用例的基线。
现在让我们通过一个基本示例来了解单元测试的工作原理。
示例
import unittest
class TestStringMethods(unittest.TestCase):
def test_upper(self):
self.assertEqual('TUTOR'.lower(), 'tutor')
def test_islower(self):
self.assertTrue('tutor'.islower())
self.assertFalse('Tutor'.islower())
if __name__ == '__main__':
unittest.main()
输出
... --------------------------------------------------------------- Ran 2 tests in 0.000s OK

这里我们以单继承的形式扩展单元测试类。这里我们使用了内置方法,如 assertEqual() 、 assertTrue() 和 assertFalse()
assertEqual() 用于验证/比较输出与结果
assertTrue() 用于验证给定的条件是否为 True。
assertFalse() 用于验证给定的条件是否为 False。
上述代码的输出可以有三种形式 −
OK ——这表示生成的所有测试都已成功执行
FAIL——这表示任一测试用例失败并引发 AssertionError 异常。
ERROR ——这表明测试引发了异常/错误。
我们可以使用装饰器@unittest.skip(<reason>)
示例
import unittest
class TestString(unittest.TestCase):
@unittest.skip("check skipped tests")
def test_upper(self):
self.assertEqual('TUTOR'.lower(), 'tutor')
def test_islower(self):
self.assertTrue('tutor'.islower())
self.assertFalse('Tutor'.islower())
if __name__ == '__main__':
unittest.main()
输出
... --------------------------------------------------------------- - Ran 2 tests in 0.000s OK (skipped=2)
结论
在本文中,我们了解了使用 Python 3.x 或更早版本中的 unittest 模块进行 Python 单元测试。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

