SuperAPI AI 工具集

unittest-skill

测试与质量

查看项目

更新于 10-15 15:00

技能介绍

用途

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,该文件内容暂未提供。