36 lines
2.0 KiB
Plaintext
36 lines
2.0 KiB
Plaintext
# 需求工单:完善单元测试
|
||
name: 完善单元测试
|
||
description: 当前项目的单元测试覆盖不足,需补充核心模块的测试用例,确保代码质量并便于后续迭代。
|
||
|
||
affected_files:
|
||
# 测试文件(可能需新建)
|
||
- tests/test_cli.py
|
||
- tests/test_core.py
|
||
- tests/test_checker.py
|
||
- tests/test_utils.py
|
||
- tests/test_models.py
|
||
# 核心代码文件(测试将覆盖它们,但本身无需修改)
|
||
- src/llm_codegen/cli.py
|
||
- src/llm_codegen/core.py
|
||
- src/llm_codegen/checker.py
|
||
- src/llm_codegen/utils.py
|
||
- src/llm_codegen/models.py
|
||
|
||
acceptance_criteria:
|
||
- 所有新增或修改的测试用例均通过 `pytest` 运行,无失败、错误或跳过。
|
||
- 测试覆盖率(语句覆盖率)不低于 85%,分支覆盖率不低于 70%,可通过 `pytest --cov=src/llm_codegen --cov-branch` 验证。
|
||
- 核心类 `CodeGenerator` 的以下方法被充分测试:
|
||
- `__init__`(不同参数组合)
|
||
- `_call_llm`(模拟 API 响应、超时、异常)
|
||
- `parse_readme`(正常文件、空文件、编码问题)
|
||
- `get_project_structure`(模拟 LLM 返回)
|
||
- `generate_file`(依赖文件存在/不存在)
|
||
- `execute_command`(正常执行、危险命令拦截、超时)
|
||
- `run`(完整流程的模拟)
|
||
- 并行检查模块 `checker.py` 的主要函数(如 `run_checks`、`apply_fixes`)需覆盖正常与错误场景。
|
||
- 工具函数 `is_dangerous_command` 应测试多个危险命令变体及安全命令。
|
||
- 命令行接口(CLI)需包含端到端测试,验证 `init`、`enhance`、`fix` 子命令的基本流程(可使用 `CliRunner` 或 `subprocess` 模拟)。
|
||
- 测试应使用 `pytest` 的临时目录(`tmp_path`)和 `unittest.mock` 模拟外部依赖(如文件系统、API 调用),避免污染实际环境。
|
||
- 为常用模拟操作(如模拟 OpenAI 客户端、模拟文件读写)编写可复用的 fixture。
|
||
- 测试代码遵循项目的编码规范(使用 black、isort 格式化,类型注解完整)。
|