SuperAPI AI 工具集

generating-apex-test

测试与质量

查看项目

更新于 10-15 21:43

技能介绍

用途:为 Salesforce Apex 生产代码生成可部署的测试类,并通过测试—修复循环分析覆盖率。

主要能力:按“一个方法验证一个行为”原则分离正向、负向与批量测试;批量测试使用 251+ 记录跨越 200 条触发器批次边界;@TestSetup 统一委托 TestDataFactory 创建数据,禁止内联构造记录列表、依赖组织数据或硬编码 ID;断言使用精确期望值并带失败消息,仅用 Assert 类(Assert.areEqual、Assert.isTrue、Assert.fail),不用旧式 System.assert;用 HttpCalloutMock、Test.setFixedSearchResults、DML mock 隔离外部边界;用 Test.startTest()/Test.stopTest() 重置调控器限制并同步执行异步操作。

使用方式:先收集被测类、现有测试与工厂、测试范围、覆盖率阈值(部署最低 75%,建议 90%+)及 org 别名;生成 {ClassName}Test.cls 与 {ClassName}Test.cls-meta.xml(默认 apiVersion 66.0),缺少工厂时创建 TestDataFactory.cls 及其 meta 文件;运行命令如 sf apex run test --class-names MyServiceTest --result-format human --code-coverage --target-org <alias>,或 --tests 指定方法、--test-level RunLocalTests 运行本地测试;失败时最多修复 3 轮,测试侧问题调整数据或断言,生产代码问题交由 generating-apex 技能。

适用场景:触发器、Service、Controller、Batch、Queueable、Callout、Selector、Scheduled、Platform Event 等组件的测试。

限制:Batch 在测试上下文只执行一次 execute(),需 batchSize >= 记录数;Queueable 链式仅首个作业运行;finish() 中调用 Database.executeBatch() 会抛 UnexpectedException;测试类超过 500 行应拆分,方法超过 30 行应提取辅助方法。具体模板与参考文档细节暂未提供。