SuperAPI AI 工具集

testing-core-processors

测试与质量

查看项目

更新于 10-16 00:06

技能介绍

用途:为 packages/core/src/processors/ 下的错误处理器编写与调试集成测试。

前置条件:运行测试前需先在仓库根目录执行 pnpm build:core;若聚焦的 vitest 运行无法解析 @internal/test-utils/setup,说明跳过了构建步骤。

主要能力与用法:

  • 使用来自 @internal/ai-sdk-v5/test 的 MockLanguageModelV2 模拟 API 错误并验证重试行为,可借助 APICallError 抛出带 statusCode、isRetryable 等字段的错误,通过计数器与数组追踪调用次数和捕获的提示词。
  • doGenerate 与 doStream 需实现相同的错误逻辑。流式 mock 必须包含完整事件序列:stream-start、response-metadata、text-start、text-delta、text-end、finish;只用 text-delta + finish 会因缺少事件导致输出为空文本。
  • 测试结构至少包含三类:正常路径(处理器捕获目标错误、修改消息并重试成功,断言生成成功、mock 调用 2 次、重试提示词含预期修改);对照测试(同场景无处理器时错误向上抛出);选择性测试(处理器忽略无关错误如 429 限流,断言错误抛出且 mock 仅调用 1 次)。
  • 涉及工具调用时,通过 agent.generate() 或 agent.stream() 的第二个参数以 AI SDK 消息格式传入历史消息,包含 user、assistant 的 tool-call 与 tool 的 tool-result。

运行命令:npx vitest run packages/core/src/processors/my-processor.test.ts(单个);npx vitest run packages/core/src/processors/(全部处理器);pnpm test:core(完整核心测试,较慢)。

限制:基于 mock 的集成测试不需要 Devin 密钥;若要跑真实 API 测试,需 ANTHROPIC_API_KEY 或 OPENROUTER_API_KEY,分别用于真实 Anthropic API 与提供方切换场景。