本资料是一份测试模式与原则指南,用于构建可靠的测试套件。
用途:为团队提供测试分层、编写规范与模拟策略的参考,覆盖单元测试、集成测试及E2E测试的选择与实施。
主要能力:
- 测试金字塔:E2E(少)、集成(适量)、单元(多)的层次结构,用于平衡测试覆盖与执行成本。
- AAA模式:Arrange(准备数据)、Act(执行被测代码)、Assert(验证结果)。
- 测试类型选择:单元测试适合纯函数与逻辑,速度快(<50ms);集成测试适合API、数据库与服务;E2E适合关键用户流程,但速度慢。
- 单元测试原则:快速(每个<100ms)、隔离(无外部依赖)、可重复、自校验、及时编写;建议测试业务逻辑、边界情况与错误处理,不测试框架代码、第三方库和简单getter。
- 集成测试原则:覆盖API端点(请求/响应)、数据库(查询与事务)、外部服务(契约);并提供All/Each前后的资源连接、状态重置与清理步骤。
- 模拟原则:对外部API、数据库(单元)、时间/随机、网络进行Mock,不模拟被测代码、简单依赖、纯函数与内存存储;模拟类型包括Stub、Spy、Mock、Fake。
- 测试组织:命名可采用should行为、when条件、given-when-then模式;用describe分组、it/test定义用例、beforeEach做公共设置。
- 测试数据:使用工厂、夹具(fixtures)、构建器;建议采用真实数据、随机化非关键值(faker)、共享公共夹具、保持数据最小化。
- 最佳实践:每个测试一个断言、测试相互独立、快速执行、描述性命名、清理副作用。
- 反模式:不测试实现细节而应测试行为、用工厂避免重复代码、简化复杂设置、修复不稳定测试、不要跳过清理。
限制:本资料仅为原则与模式说明,未提供具体框架、代码示例或安装命令;实际落地需结合项目所用测试框架。