使用Unittest进行Python程序单元测试
在本文中,我们将学习使用Python 3.x(或更早版本)中提供的unittest模块进行软件测试的基础知识。它允许自动化测试,共享测试的设置和退出代码,以及为每个框架进行独立测试。
在单元测试中,我们使用了各种各样的面向对象概念。我们将在这里讨论一些主要使用的概念。
测试用例 (Testcase) − 它是一个根据给定的一组输入做出特定响应的基类。我们使用unittest的基类“TestCase”来实现此操作。
测试套件 (Testsuite) − 用于将测试用例组合在一起并同时执行它们。
测试运行器 (Testrunner) − 它遵循基于结果的任务执行。它参与在执行任务后显示结果。
测试装置 (Testfixture) − 它作为相关环境中测试用例的基线。
现在让我们来看一个基本的例子,看看单元测试是如何工作的。
示例
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() 用于验证给定条件是否为真。
assertFalse() 用于验证给定条件是否为假。
上述代码的输出可以有三种形式
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单元测试。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP