python unittest测试需继承unittest.testcase类,以test_开头命名方法,用self.assert*验证结果;如测试calc_avg函数需覆盖空列表、单元素和常规数据,运行命令为python -m unittest test_calc。

在Python中用unittest做基础功能测试,核心是写测试类继承unittest.TestCase,把要验证的逻辑封装进以test_开头的方法里,再用self.assert*方法检查结果是否符合预期。
准备一个待测函数
先有个简单目标才好测试。比如写一个计算列表平均值的函数:
def calc_avg(numbers):
if not numbers:
return 0
return sum(numbers) / len(numbers)
编写对应的测试类
新建一个测试文件(如test_calc.py),按规范组织:
import unittest
from calc import calc_avg
class TestCalcAvg(unittest.TestCase):
def test_normal_list(self):
self.assertEqual(calc_avg([1, 2, 3]), 2.0)
def test_single_item(self):
self.assertEqual(calc_avg([5]), 5.0)
def test_empty_list(self):
self.assertEqual(calc_avg([]), 0)
- 每个测试方法名必须以
test_开头,否则不会被自动识别 -
self.assertEqual()是最常用的断言,检查实际值是否等于期望值 - 空列表、单元素、常规数据都覆盖,体现“边界+典型”思路
运行测试
终端执行以下任一命令即可运行:
python -m unittest test_calc
# 或带详细输出
python -m unittest -v test_calc
成功时显示.,失败会标出哪一行断言没通过,并显示期望值和实际值对比。
补充常用断言和技巧
除assertEqual外,还有几个高频断言:
-
self.assertTrue(expr):检查表达式为真(如calc_avg([1,3]) > 1) -
self.assertIn(item, container):检查某值是否在列表/字符串中 -
self.assertRaises(ErrorType, func, *args):验证函数是否抛出指定异常 - 用
setUp()方法可提前准备公共测试数据,避免重复初始化
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











