SuperAPI AI 工具集

mocha-skill

测试与质量

查看项目

更新于 10-15 14:28

技能介绍

用途

mocha-skill 是一个用于生成 Mocha 测试代码的 AI 技能,主要服务于 JavaScript 项目的单元测试与集成测试编写。当用户提到 "Mocha"、"Chai"、"sinon",或使用 describe/it 结构(而非 Jest)时触发。它帮助开发者按 Mocha 的惯用方式组织测试,并配合 Chai 做断言、Sinon 做模拟。

主要能力

该技能覆盖以下核心测试模式:

  • 基础测试与 Chai 断言:使用 describe / it 组织用例,通过 beforeEach 初始化被测对象。示例中展示了 expect(calc.add(2, 3)).to.equal(5) 以及断言抛错 expect(() => calc.divide(10, 0)).to.throw('Division by zero')。
  • Chai 断言写法:包括 to.equal、to.have.lengthOf、to.have.property、to.include、to.throw、to.deep.equal、to.deep.include 等。
  • Sinon 模拟:推荐使用 sinon.createSandbox() 创建沙箱,在 afterEach 中 sandbox.restore() 恢复。示例展示了对 API 方法打 stub 并验证调用次数:sandbox.stub(api, 'get').resolves({ name: 'Alice' }),随后断言 stub.calledOnce。
  • 异步测试:支持 async/await 风格(const data = await fetchData())以及回调 done 风格(it('callback style', (done) => {...}))。
  • 反模式提示:列出常见问题及改进方式,例如遗漏 done() 应改用 async/await 以避免测试挂起;不使用 sandbox 会导致 stub 泄漏,应使用 sinon.createSandbox();在 describe 中使用箭头函数会影响 this.timeout() 的上下文,应改用普通函数。
  • 快速参考命令:运行全部 npx mocha、监听 npx mocha --watch、按名称过滤 npx mocha --grep "login"、设置超时 npx mocha --timeout 10000、递归执行 npx mocha --recursive。

使用方式

安装依赖:

npm install mocha chai sinon --save-dev

随后按技能提供的模式编写测试文件,使用 describe / it 组织用例,Chai 做断言,Sinon 做 stub/spy。更深入的用法可参考 reference/playbook.md,其章节包括:

  1. Production Configuration(mocharc、NYC 覆盖率、TypeScript)
  2. Testing with Chai + Sinon(stub、spy、断言)
  3. Advanced Sinon Patterns(fake timers、nock HTTP、顺序执行)
  4. Async Patterns(Promise、await、callback、events)
  5. Hooks & Test Organization(生命周期、嵌套、grep 标签)
  6. Custom Reporters & Plugins(reporter 类、root hooks)
  7. Express/API Testing(Supertest 集成)
  8. CI/CD Integration(GitHub Actions、services)
  9. Debugging Quick-Reference(10 个常见问题)
  10. Best Practices Checklist(13 项)

适用场景

适用于使用 Mocha 作为测试框架的 JavaScript 项目,尤其是需要 Chai 断言与 Sinon 模拟配合的单元测试、异步测试、Express/API 测试以及 CI/CD 集成场景。

限制

资料未提供该技能的具体收费、价格、支持平台、运行环境要求或效果保证等信息,暂未提供。