SuperAPI AI 工具集

python-fastapi-ddd-testing-skill

测试与质量

查看项目

更新于 10-16 06:17

技能介绍

该技能面向 Python DDD + 洋葱架构应用的单元测试,基于 dddpy,聚焦内层:领域层(值对象与实体,纯业务规则)与用例层(编排领域与仓库接口的应用工作流)。除非明确要求,否则有意避免完整 HTTP/API 测试。

推荐策略:领域测试不使用 Mock,断言不变量与状态转换;用例测试 Mock 仓库接口,使用 Mock(spec=...),断言仓库方法调用正确、领域异常抛出正确、实体状态转换正确。基础设施/表现层可另加集成测试(可选)。

目录结构镜像洋葱分层:tests/ 下含 domain/{aggregate}/...、usecase/{aggregate}/...、infrastructure/...(可选集成测试)、presentation/...(可选 API 测试)。

用例测试模式(基于 dddpy):使用 unittest.mock.Mock(spec=RepoInterface) 让拼写错误快速失败。示例:from unittest.mock import Mock; import pytest; @pytest.fixture def todo_repository_mock(): return Mock(spec=TodoRepository); def test_create_todo_calls_save(todo_repository_mock): usecase = CreateTodoUseCaseImpl(todo_repository_mock); title = TodoTitle("Test"); todo = usecase.execute(title=title); todo_repository_mock.save.assert_called_once_with(todo)。

更多示例(值对象校验、实体生命周期测试、异常情形)见 references/TESTING.md。

限制:仅面向单元测试指导,不涵盖完整 API 测试;具体安装与运行命令资料中暂未提供。