1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | jasmine-skill-lambdatest-agent-skills |
| 作者/维护者 | TestMu AI(原 LambdaTest) |
| 来源链接 | https://github.com/LambdaTest/agent-skills/tree/main/jasmine-skill |
| 许可证 | MIT(数据来自 GitHub API) |
| GitHub Stars | 352(数据来自 GitHub API;为整个合集仓库总量,不代表本技能自身热度) |
| Forks | 69(数据来自 GitHub API,同为合集整体口径) |
| 最新版本 | 1.0(SKILL.md front matter 自述,仓库未发布正式 Release) |
| 安装方式 | 见第 10 章 |
2. 功能介绍与亮点
为 Jasmine(BDD 风格、内置断言与 Mock、无需额外依赖库的 JavaScript/TypeScript 测试框架)生成规范测试代码的技能:
- BDD 语法与完整 Matcher 清单:
describe/it/beforeEach基础结构、toBe/toEqual/toContain/toThrowError等常用断言全部给出可直接套用的示例。 - Spy 体系深挖:
spyOn、jasmine.createSpy、createSpyObj(含方法与属性一次性 Mock)、spyOnProperty、and.callFake/and.returnValues/and.throwError等调用追踪与桩返回值写法均有覆盖。 - 假时钟与异步:
jasmine.clock()的install/uninstall/tick/mockDate用于测试setTimeout/setInterval/防抖逻辑;async/await、done回调、expectAsync()承诺断言均给出示例。 - 自定义 Matcher:演示如何用
jasmine.addMatchers注册领域专用断言(如邮箱格式校验、数值区间判断),以及非对称匹配器(objectContaining/arrayContaining/stringMatching)处理局部匹配场景。 - 浏览器测试(Karma)与 CI 集成:一节演示 DOM 组件测试(弹窗焦点陷阱、键盘事件),另附 GitHub Actions 工作流示例(含覆盖率检查与浏览器测试 Job)。
- 反模式清单与调试对照表:明确指出
fdescribe/fit误提交、时钟未卸载等 4 类常见错误;配套文档另有 12 项问题-原因-修复对照表与 14 条最佳实践清单。 - 纯参考文档形态:子目录仅含 SKILL.md 与两份 Markdown 参考文档,不含任何可执行脚本,也不涉及第三方账号或凭据。
3. 适用场景
所属分类:工程效率与代码质量
已具备基础 JavaScript/TypeScript 知识、想让 AI 编码助手按统一规范写出 Jasmine 测试(含 Spy、假时钟、自定义 Matcher、浏览器组件测试)的初中级前端开发者;也适用于沿用 Jasmine 作为既有测试框架(如 Angular 项目历史遗留配置、或团队偏好其内置断言无需额外安装 Mock 库)、想把测试写法标准化的团队。不依赖 TestMu AI 云端服务,纯本地可用。
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持。SKILL.md 采用标准 Agent Skills 格式,仓库 README 给出配套的官方安装工具。
- Codex:❓ 未验证——仓库 README 列出的受支持助手为 “Claude Code, Copilot, Cursor, Gemini CLI”,未点名 Codex。
- OpenClaw:❓ 未验证——已抓取材料未提及。
- Hermes Agent:❓ 未验证——已抓取材料未提及。
5. 推荐理由
一份技能讲全 Jasmine 从基础断言、Spy 体系、假时钟到自定义 Matcher、浏览器组件测试的生产级写法,反模式清单与调试对照表帮初学者少走弯路,核心路径零付费依赖、子目录不含任何脚本,安全面干净,内容深度在同池测试框架系列技能中排名靠前。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | TestMu AI(原 LambdaTest)是该领域公认的一线测试云平台:累计融资 1.08 亿美元(8 轮,最近一轮 2024 年 Avataar Venture Partners 领投的 3800 万美元 C 轮),18,000+ 企业客户(含 Microsoft、OpenAI、Nvidia),Forbes 2026-01-12 有专文报道。合集仓库整体 352 stars 属整个合集,不代表本技能自身热度,未查到本技能自身的独立第三方评价 |
| 可用性 | 8 | 核心功能零配置、零付费依赖,复制即用;文档完整含基础用法 + 两份参考文档共 10 个专题,覆盖生产配置到 CI 集成;子目录最后提交约 5.7 个月前,未见归档或功能性问题 |
| 安全性 | 9 | 子目录不含任何脚本或可执行文件,仅 SKILL.md 与两份 Markdown 参考文档;逐份扫描未见可疑指令或隐藏外发;全文未出现任何第三方账号、API Key 或凭据要求;License(MIT)明确 |
安全检查清单:① Shell 命令——无,不含 scripts/;② 联网外发——纯本地生成测试代码,无任何外发行为;③ 凭据——不涉及,本技能不依赖任何第三方账号或 API Key;④ 可疑指令——未发现;⑤ 作者信誉——TestMu AI,融资/客户量/媒体报道均可查证,良好;⑥ License——MIT,明确;⑦ 最近维护——约 2026-02-23,约 5.7 个月前,未见归档。
7. 跟同类 Skills 相比的优势
| 同类项目 | 定位 | 与本技能的差异 |
|---|---|---|
| jest-skill-lambdatest-agent-skills | 同池姊妹技能,面向 Jest(当前 JS 生态使用最广的测试运行器,内置断言 + 快照测试) | 生态更大、案例更多,且自带快照测试能力;本技能的优势是 Jasmine 无需构建工具集成即可独立运行,历史上是 Angular 官方默认测试框架,存量项目迁移成本更低 |
| mocha-skill-lambdatest-agent-skills | 同池姊妹技能,面向 Mocha + Chai + Sinon 组合 | 断言与 Mock 分散在三个独立库中,需要额外理解库间配合;本技能的 Jasmine 内置断言与 Spy 是同一套 API,学习路径更短 |
| vitest-skill-lambdatest-agent-skills | 同池姊妹技能,面向 Vitest(Vite 原生测试运行器,API 与 Jest 兼容) | 覆盖 Vite 生态特有能力(原地测试、HMR 友好);本技能不绑定任何构建工具,适合非 Vite 项目或独立 Node 脚本测试 |
| karma-jasmine(社区常见组合,非 SKILL.md 形态) | Angular CLI 历史默认的浏览器测试运行器搭配 Jasmine 断言库 | 是运行器 + 框架组合而非可安装的 Agent Skill;本技能已把该组合的浏览器测试写法(DOM 创建、焦点陷阱、键盘事件)整理进第 7 节示例,可直接复用 |
核心差异化在“内置断言 + Spy 一体化、无需额外安装 Mock 库”:Jasmine 把断言、Spy、假时钟整合进单一 API,不需要像 Mocha 那样拼装多个库,也不依赖任何构建工具;对存量使用 Jasmine 的项目(尤其历史悠久的 Angular 项目)迁移成本最低。
8. 用户评价
该技能目前在第三方平台尚无具名用户评价;LambdaTest/agent-skills 仓库整体在 GitHub 上有真实的多贡献者协作记录(含非核心团队成员提交)。
9. 其他补充
- 支持语言:JavaScript、TypeScript。
- 浏览器组件测试一节演示的是 Karma + Jasmine 组合,适合仍在维护基于 Karma 的旧项目(如较早期 Angular 脚手架)团队直接复用。
- 调试对照表将“焦点测试提交到主分支”列为高频问题并给出 Lint/Git Hook 防范建议,对团队协作场景有实际参考价值。
10. 安装使用方式
方式一:官方 CLI(仓库推荐)
git clone https://github.com/LambdaTest/agent-skills && cd agent-skills
npx agentskillsforall add https://github.com/LambdaTest/agent-skills.git --skill jasmine-skill
方式二:手动复制(本技能不含任何脚本,直接复制目录即可)
git clone https://github.com/LambdaTest/agent-skills
cp -r agent-skills/jasmine-skill ~/.claude/skills/
安装后注意事项:复制到位后无需重启、无需注册任何账号,Agent 会在识别到 “Jasmine”、“jasmine.createSpy”、“toHaveBeenCalled”、“Jasmine spec” 等触发词时自动读取本技能内容。
11. 注意事项
- 本技能面向“已经决定用 Jasmine”的项目;若是新项目选型,需自行判断 Jasmine 是否比 Jest/Vitest 更合适(如是否需要与 Vite/Webpack 深度集成,那种场景 vitest-skill/jest-skill 更贴合)。
- 浏览器组件测试示例基于 Karma,若项目已迁移到 Jest 的 jsdom 环境或其他浏览器测试方案,示例需自行改写。
- 子目录最后提交约在 2026-02-23,约 5.7 个月前,暂未发现功能性问题,但关注长期维护节奏的团队可留意后续更新频率。