用途:用快速、确定性的测试隔离验证业务逻辑,适用于编写单元测试、实施 Arrange-Act-Assert(AAA)模式、设计测试隔离和设定覆盖率目标。
主要能力:AAA 模式(先构造数据、再执行被测函数、最后断言结果);测试隔离(每个测试新建实例,用 beforeEach 初始化、afterEach 清理,如 vi.clearAllMocks);参数化测试(Jest 的 test.each、pytest 的 @pytest.mark.parametrize,可叠加装饰器做组合测试);Mock 外部依赖。覆盖目标示例:业务逻辑 90%+、关键路径 100%、新功能 100%、工具函数 80%+。
使用方式:TypeScript/JavaScript 可用 Vitest(现代)或 Jest(成熟),Python 用 pytest。建议每个测试执行时间小于 100ms、外部依赖全部 Mock;覆盖率工具可选 c8、nyc、pytest-cov。pytest 的 fixture 作用域:function(默认,隔离,如 db_session)、module(昂贵且只读,如 ML 模型、编译正则)、session(极昂贵且不可变,如 DB 引擎、外部服务),也可用 indirect=True 将参数延迟到运行时。
限制与常见错误:测试实现而非行为、测试过慢(调用外部服务)、测试间共享状态、过度 Mock(测试的是 Mock 而非代码)。相关技能包括集成测试、网络 Mock(msw-mocking)与测试数据管理。具体价格、平台支持与其他细节资料暂未提供。