用途:本技能提供编写有效、可维护测试的现代模式,覆盖单元测试与集成测试两类场景。
主要能力与模式:
- AAA 结构:将测试分为 Arrange(准备数据)、Act(执行被测逻辑)、Assert(断言结果)三段,示例中对用户注册返回结果和用户邮箱进行断言。
- 模拟外部服务:使用 unittest.mock 的 Mock、patch 装饰器替换外部依赖,例如 patch('services.email.send_email'),设定返回值并通过 assert_called_once_with 验证调用参数。
- 夹具与工厂:借助 pytest 的 @pytest.fixture 与工厂类(如 UserFactory)创建测试数据,示例中 user 夹具返回 admin 角色的用户,authenticated_client 夹具依赖 user 并返回已登录的 TestClient,用于测试 /admin 返回 200。
- 集成测试:以 @pytest.mark.integration 标记,结合 db_session、stripe_mock 等验证完整结账流程,检查订单状态为 completed 以及 stripe_mock.charges.create 被调用。
- 覆盖率目标:单元测试 80% 以上覆盖率,集成测试覆盖关键路径,E2E 测试仅覆盖 happy path。
使用方式:在测试代码中引入 pytest、unittest.mock 和相应工厂,按上述模式组织测试函数。示例命令与代码片段保持原样,需按项目实际服务名与依赖调整。
适用场景:为服务层、接口层和关键业务流程编写 Python 测试,尤其是需要隔离外部服务、复用测试数据的项目。
限制:资料仅给出上述模式与示例,未提供框架安装命令、具体项目配置、运行命令、性能数据或收费信息,这些内容暂未提供。