Python单元测试核心函数来自unittest模块,包括断言方法如assertEqual、assertTrue;setUp和tearDown用于测试前后环境准备与清理;@skip等装饰器支持条件跳过;unittest.mock提供Mock、patch实现依赖模拟;通过unittest.main()或discover运行测试,确保代码可靠性。

Python单元测试中,常用函数和方法主要来自unittest模块。这些函数帮助我们组织测试用例、验证结果、模拟依赖以及提升测试的可维护性。以下是核心函数的整理与说明。
1. 断言方法(Assertions)
断言是单元测试的核心,用于验证代码行为是否符合预期。常用的断言方法包括:
-
assertEqual(a, b):检查 a == b -
assertNotEqual(a, b):检查 a != b -
assertTrue(x):检查 x 是否为 True -
assertFalse(x):检查 x 是否为 False -
assertIs(a, b):检查 a 和 b 是同一个对象 -
assertIsNone(x):检查 x 是否为 None -
assertIn(a, b):检查 a 是否在 b 中 -
assertNotIn(a, b):检查 a 是否不在 b 中 -
assertIsInstance(a, type):检查 a 是否是指定类型 -
assertRaises(exception, callable, *args):检查是否抛出指定异常
这些方法提供清晰的错误信息,便于定位问题。
2. 测试用例结构相关函数
组织测试逻辑时,以下方法控制测试的执行流程:
立即学习“Python免费学习笔记(深入)”;
-
setUp():每个测试方法运行前执行,用于准备测试环境(如初始化对象、创建临时文件) -
tearDown():每个测试方法运行后执行,用于清理资源(如删除文件、关闭连接) -
setUpClass():整个测试类运行前执行一次,使用 @classmethod 装饰 -
tearDownClass():整个测试类运行后执行一次,使用 @classmethod 装饰
合理使用这些方法能避免重复代码,提高测试效率。
3. 跳过与条件执行测试
有时需要根据条件跳过某些测试:
和网商城,手机平台(WAP2.0界面)v1.0测试版(带全站测试数据+图片)。 特色功能: 商品基本信息中编号条型码生成设计中,选择商品类型。 商品价格,支持单一价格,同时支持开启规格,可以分别设置价格。 商品属性,支持自定属性,不同的商品类型加载不同的商品属性,支持按属性检索浏览。 扩展属性:支持添加文字属性,图文属性等,具体功能请试用 赠送礼品:添加购买赠送的礼品(礼品后台管理)。 相关专题
-
@unittest.skip("reason"):无条件跳过测试 -
@unittest.skipIf(condition, "reason"):条件为真时跳过 -
@unittest.skipUnless(condition, "reason"):条件为假时跳过 -
@unittest.expectedFailure:标记测试为“期望失败”,失败时不计入错误
适用于兼容性测试或功能未完成的情况。
4. 模拟与打桩(Mocking)
使用unittest.mock模块可以隔离外部依赖:
-
Mock():创建一个模拟对象 -
MagicMock():支持大多数魔术方法的 Mock -
@patch('target'):装饰器,临时替换指定对象(如函数、类、属性) -
mock.assert_called():检查是否被调用 -
mock.assert_called_with(*args):检查是否以特定参数被调用 -
mock.return_value = value:设置返回值 -
mock.side_effect = exception或函数:定义副作用
适合测试涉及网络请求、数据库操作或耗时函数的场景。
5. 运行与发现测试
控制测试执行的方式:
-
unittest.main():自动发现并运行当前模块中的测试 -
TestLoader:手动加载测试用例 -
TestSuite:组合多个测试用例或测试集 -
TestRunner(如TextTestRunner):运行测试并输出结果
可通过命令行运行测试:python -m unittest test_module.py 或自动发现:python -m unittest discover










