用途
unittest-skill 用于生成 Python unittest 测试代码。unittest 是 Python 内置的测试框架,该技能围绕 TestCase、setUp/tearDown 生命周期以及断言方法组织测试,适合在用户提到 "unittest" 或需要为 Python 代码编写单元测试时使用。
主要能力
- 基本测试结构:定义继承自 unittest.TestCase 的测试类,在 setUp 中准备测试对象,在测试方法中调用断言。
- 断言方法:提供 assertEqual、assertNotEqual、assertTrue、assertFalse、assertIsNone、assertIsNotNone、assertIs、assertIn、assertNotIn、assertIsInstance、assertAlmostEqual、assertGreater、assertLess、assertRegex、assertCountEqual 等。
- 异常与警告断言:使用 assertRaises 捕获异常并检查异常信息,使用 assertWarns 检查警告。
- 子测试参数化:通过 subTest 在同一测试方法内对多组输入进行参数化测试。
- Mocking:使用 unittest.mock 中的 patch、MagicMock、Mock 对依赖进行打桩和模拟,并验证调用情况。
- 生命周期:支持 setUpClass、setUp、测试方法、tearDown、tearDownClass 的完整执行顺序。
- 运行与发现:可通过 python -m unittest 运行,或指定模块、类、方法运行;也可使用 python -m unittest discover 自动发现测试。
使用方式
编写测试类并继承 unittest.TestCase,在 setUp 中初始化被测对象,在 test_ 开头的方法中编写断言。使用 subTest 进行参数化,使用 patch 装饰器或上下文管理器进行 mock。运行命令示例:
- python -m unittest
- python -m unittest test_module.TestClass.test_method
- python -m unittest discover -s tests -p "test_*.py"
适用场景
适用于 Python 项目的单元测试编写,包括对函数、类、服务层逻辑的测试,以及需要模拟外部依赖(如数据库、邮件服务)的场景。
限制
资料中未提供关于收费、价格、平台支持范围、具体效果或额外使用步骤的信息。高级模式、调试指南、CI/CD 集成和最佳实践需参考 reference/playbook.md,该文件内容暂未提供。