用途
该技能为指定的 CDS 实体生成 ABAP Unit 测试类,使用 CDS Test Double Framework 进行隔离的单元测试。它复刻了 SAP Joule 的“CDS Unit Test Generation”能力,结合 ARC-1(SAP 系统访问)与 mcp-sap-docs(文档与最佳实践)。
主要能力
- 读取 CDS 实体的 DDL 源码、结构化字段列表及依赖上下文(底层表、视图、关联)。
- 分析 CDS 语义并识别可测试用例,涵盖计算、CASE 表达式、类型转换、WHERE 过滤、HAVING、JOIN、聚合、空值处理、参数、货币/单位转换、字符串操作、关联等类别。
- 在 SAP_BASIS 8.16+ 环境下,可直接调用 SAPDiagnose(action="cds_testcases") 获取 SAP 权威的可测试语义列表;旧版本则回退到手动分析 DDL。
- 生成符合 SAP 最佳实践的完整 ABAP 测试类,包含 class_setup、class_teardown、setup 及各测试方法。
- 支持预览确认后,在 SAP 系统上创建、激活并运行测试,报告结果并针对失败给出修复建议。
使用方式
用户提供 CDS 实体名称即可,技能会静默应用智能默认值:测试类名 ZCL_TEST_<entity_name>、包 $TMP、测试范围覆盖所有可测试语义、风险等级 HARMLESS、时长 SHORT。用户也可指定测试类名、包或传输请求。
流程分为六步:
- 收集 CDS 实体上下文(读取 DDL、字段列表、依赖)。
- 分析语义并提出测试用例,以编号列表呈现,询问用户选择全部或部分。
- 获取 CDS Test Double Framework 参考文档。
- 生成测试类源码。
- 预览并确认。
- 创建、激活并运行测试,报告结果。
适用场景
- CDS 实体包含非平凡逻辑(计算、CASE、过滤、JOIN 等)。
- 需要为 CDS 逻辑建立基础测试覆盖。
- 重构 CDS 逻辑时希望获得回归测试。
限制
- 不适用于仅重命名字段的简单投影,此时会提示用户测试价值有限。
- 不进行性能测试、权限测试(DCL/CDS 访问控制)、集成测试或 RAP 行为测试。
- BTP 环境仅允许创建 Z*/Y* 类,且无法通过 DD03L 查询标准 SAP 表;On-Premise 环境可完整访问 DD03L、DD02L 等。
- 部分功能(如 SAPDiagnose 的 cds_testcases)需要 SAP_BASIS 8.16+,旧版本需手动分析。
错误处理
技能涵盖常见问题及修复,如实体名错误、类型不匹配、GET_DOUBLE 失败、断言失败、激活错误、类已存在等,并提供相应解决步骤。