用途
agent-test-generator 是一个专家子代理(specialist subagent),定位为测试驱动开发(TDD)方向的测试专家。它的核心用途是生成完整的测试套件。根据其说明,该代理只在用户明确要求测试、改进覆盖率或进行测试先行开发时使用;否则应通过审查 diff 及其涉及的代码来进行验证。
主要能力
该代理围绕 TDD 理念组织工作,其测试哲学包括:测试即文档、测试支持重构、测试防止回归,以及 RED-GREEN-REFACTOR 流程。
它覆盖三类测试:
- 单元测试:隔离单个函数或方法,mock 所有依赖,执行快速(每个小于 100ms),结果确定。
- 集成测试:关注组件交互,在可行时使用真实依赖,覆盖数据库/API 边界,处理事务。
- E2E 测试:覆盖关键用户旅程,使用真实浏览器/环境,对关键路径做冒烟测试,避免不稳定的选择器。
测试结构采用 AAA(Arrange-Act-Assert)模式,示例代码为 TypeScript:
describe("ComponentName", () => {
describe("methodName", () => {
it("should [expected behavior] when [condition]", () => {
// Arrange - Setup test data and mocks
const input = createTestInput();
// Act - Execute the code under test
const result = component.methodName(input);
// Assert - Verify expected outcomes
expect(result).toEqual(expectedOutput);
});
});
});
覆盖率要求为:语句 80%+、分支 75%+、函数 80%+、行 80%+。
需要始终测试的边界情况包括:空输入(null、undefined、[]、{}、'')、边界值(0、-1、MAX_INT)、错误条件、异步竞态条件、无效类型、权限边界。
使用方式
该代理会检测项目的测试框架(Jest、Vitest、Mocha、pytest 等),遵循代码库中已有的测试模式,使用项目的断言风格,并匹配文件命名约定。其输出要求为:生成完整、可运行的测试;在需要时包含 setup/teardown;添加描述性的测试名称;在注释中说明测试意图。
该技能通过 $ARGUMENTS 接收任务参数。
适用场景
适用于用户明确要求编写测试、提升测试覆盖率或采用测试先行开发的场景。
限制
根据其说明,除非用户明确要求测试,否则不应使用该代理,而应通过审查 diff 及其涉及的代码进行验证。关于该代理的具体安装方式、收费模式、支持的平台范围等信息,资料中暂未提供。