使用 Python 中的 Unittest 进行单元测试
在本教程中,我们将学习使用内置模块 unittest 进行 单元测试。测试在软件开发中起着重要作用。在投入生产之前,您将了解问题所在。
我们将使用内置模块 unittest 学习 Python 测试的基础知识。让我们开始本教程吧。
什么是单元测试?
以登录系统为例。登录表单中的每个字段都是一个单元/组件。测试这些单元/组件的功能称为单元测试
示例
让我们看看 unittest 框架的基本结构。
# 导入 unittest 模块 import unittest # unittest 将测试所有名称以 'test' 开头的方法 class SampleTest(unittest.TestCase): # 返回 True 或 False def test(self): self.assertTrue(True) # 运行测试 unittest.main()
输出
如果你运行上述程序,你将得到以下结果。
---------------------------------------------------------------------- Ran 1 test in 0.001s OK
2.测试字符串方法
现在,我们将使用示例测试用例测试不同的字符串方法。请记住,方法名称必须以 test.
开头让我们看一下我们将要编写的每种方法的简要介绍。
test_string_equality
此方法使用 unittest.TestCase 的 assertEqaul 方法测试两个字符串是否相等。
test_string_case
此方法使用 unittest.TestCase 的 assertEqaul 方法测试两个字符串情况是否相等。
test_is_string_upper
此方法使用 unittest.TestCase 的 assertTrue 和 assertFalse 方法测试字符串是否为大写。
示例
# 导入 unittest 模块
import unittest
class TestingStringMethods(unittest.TestCase):
# 字符串相等
def test_string_equality(self):
# 如果两个参数相等则成功
self.assertEqual('ttp' * 5, 'ttpttpttpttptp')
# 比较两个字符串
def test_string_case(self):
# 如果两个参数相等则成功
self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT')
# 检查字符串是否为大写
def test_is_string_upper(self):
# 用于检查语句是 True 还是 False
# **assertTrue** 中的表达式结果必须为 True 才能通过测试用例
# **assertFalse** 中的表达式结果必须为 False 才能通过测试用例
self.assertTrue('TUTORIALSPOINT'.isupper())
self.assertFalse('TUTORIALSpoint'.isupper())
# 运行测试
unittest.main()
输出
如果运行上述代码,则如果所有测试用例都通过,您将获得以下结果。
... ---------------------------------------------------------------------- Ran 3 tests in 0.001s OK
示例
运行以下程序以查看失败的测试用例输出。
# 导入 unittest 模块
import unittest
class TestingStringMethods(unittest.TestCase):
# 字符串相等
def test_string_equality(self):
# 如果两个参数相等则成功
self.assertEqual('ttp' * 5, 'ttpttpttpttptp')
# 比较两个字符串
def test_string_case(self):
# 如果两个参数相等则成功
self.assertEqual('tutorialspoint'.upper(), 'TUTORIALSPOINT')
# 检查字符串是否为大写
def test_is_string_upper(self):
# 用于检查语句是 True 还是 False
# **assertTrue** 中的表达式结果必须为 True 才能通过测试用例
# **assertFalse** 中的表达式结果必须为 False 才能通过测试用例
self.assertTrue('TUTORIALSPOINt'.isupper())
self.assertFalse('TUTORIALSpoint'.isupper())
# 运行测试
unittest.main()
输出
如果运行上述程序,则会得到以下结果。
======================================================================
FAIL: test_is_string_upper (__main__.TestingStringMethods)
----------------------------------------------------------------------
Traceback (most recent call last):
File "p:/Python Work/Stopwatch/practice.py", line 21, in test_is_string_upper
self.assertTrue('TUTORIALSPOINt'.isupper())
AssertionError: False is not true
----------------------------------------------------------------------
Ran 3 tests in 0.016s
FAILED (failures=1)
即使所有测试用例中有一个测试用例失败,我们也会显示失败消息。
结论
如果您对本教程有任何疑问,请在评论部分中提及。
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

