Python单元测试入门:使用unittest编写测试用例

清欢
清欢
发布时间:2026-10-14| 5人浏览过
原创

本文详细介绍Python中如何使用unittest模块进行单元测试。通过创建继承TestCase的类,定义以test_开头的方法,并利用断言验证函数行为。文章包含完整的代码示例,展示如何测试姓名格式化函数,并解析测试结果输出,帮助开发者掌握基础测试技巧。

Python单元测试入门:使用unittest编写测试用例

本文通过具体实例解析Python中的单元测试及测试用例编写方法,供读者参考学习。

单元测试与测试用例概述

简介

简介

测试用例是由一组单元测试构成的集合,旨在共同验证函数在不同场景下的行为是否符合预期要求。

为函数编写测试用例时,首先需要导入模块 以及待测试的函数,随后创建一个继承自 的类,并在其中编写多个方法,从不同维度测试函数的行为。

创建测试实例:验证姓名格式

创建测试实例:验证接收到的名和姓是否符合预期格式。

1. 首先创建一个名为 的文件(文件名可自定义),该文件包含接收名和姓并返回格式化全名的函数。


def get_formatted_name(first,last,middle=''):
  '''生成整洁的姓名'''
  if middle:
    full_name=first+' '+middle+' '+last
  else:
    full_name=first+' '+last
  return full_name.title()

2. 接着创建名为 的文件,用于检查 中的函数在给定名和姓时能否正确工作。


import unittest
from name_function import get_formatted_name
class NamesTestCase(unittest.TestCase):
  """测试name_function.py"""
  def test_first_last_name(self):
    """能够正确处理姓名么?"""
    formatted_name = get_formatted_name('liu','wei' )
    self.assertEquals(formatted_name, 'Liu Wei')
unittest.main()

上述代码的设计思路如下:

  1. 导入模块 unittest 以及需要测试的函数 get_formatted_name()。
  2. 创建一个名为 NamesTestCase 的类(类名可自定义,但建议与测试函数相关并包含“Test”字样),该类用于包含一系列针对 get_formatted_name() 的单元测试。此类必须继承 unittest.TestCase,以便Python能够正确执行编写的测试代码。
  3. 类中仅包含一个方法,命名为 test_first_last_name()。当运行 test_name_function.py 脚本时,所有以 test_ 开头的方法都会自动执行。在本例中,使用参数 'liu' 和 'wei' 调用 get_formatted_name(),并将返回结果存储到变量 formatted_name 中。
  4. assertEquals() 是 unittest 模块中最实用的功能之一,即断言方法。断言方法用于核实实际结果与期望结果是否一致。语句 self.assertEquals(formatted_name, 'Liu Wei') 的作用是:将 formatted_name 的值与字符串 'Liu Wei' 进行比较。
  5. 代码行 unittest.main() 用于启动Python运行当前文件中的测试。

测试结果解析

运行结果如下所示:

---------------------------------------------------------------------- Ran 1 test in 0.000s

OK

结果中的第一句末尾的句点表示有一个测试通过。接下来的一行指出Python执行了一个测试,耗时不足0.001秒。最后的“OK”表明该测试用例中的所有单元测试均通过。

关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》。

希望本文所述内容能对大家的Python程序设计有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。