Test Coverage Report: [Concept Name]
2026-09-04 23:37:54作者:伍希望
Concept Page: /docs/concepts/[slug].mdx
Test File: /tests/{category}/{concept}/{concept}.test.js
DOM Test File: /tests/{category}/{concept}/{concept}.dom.test.js (if applicable)
Summary
| Metric | Count |
|---|---|
| Total Code Examples in Doc | XX |
| Testable Examples | XX |
| Tests Written | XX |
| DOM Tests Written | XX |
| Skipped (with reason) | XX |
Tests by Section
| Section | Line Range | Examples | Tests | Status |
|---|---|---|---|---|
| [Section 1] | XX-YY | X | X | PASS |
Skipped Examples
| Line | Example Description | Reason |
|---|---|---|
| XX | ASCII diagram of call stack | Conceptual, not executable |
报告的价值在于把"示例总数 = 已测数 + 已解释跳过数"变成可核对的等式——任何一条没被覆盖也没被解释的示例都会显形。
## 10. 质量检查清单与常见问题
### 10.1 四维质量清单
SKILL 的质量检查分四个维度,可作为 PR 自检:
**完整性**
- 所有可测试示例都有对应测试
- 测试按文档章节组织
- 注释中包含源行号引用(From lines XX-YY)
- DOM 测试位于独立的 `.dom.test.js` 文件
- 边界情况与错误示例均已覆盖
**正确性**
- 测试验证的是文档实际描述的行为
- 文档中的输出注释与测试期望一致
- 异步测试正确使用了 async/await
- 错误测试使用了正确的 `toThrow` 模式
- 浮点数比较使用 `toBeCloseTo`
- 对象比较使用 `toEqual`(而非 `toBe`)
**约定**
- 显式从 vitest 导入
- 遵循 describe/it 嵌套模式
- 测试名以 "should" 开头
- 文件命名符合 `{concept}.test.js`
- DOM 测试带有 jsdom 环境声明
**验证**
- `npm test -- tests/{category}/{concept}/` 全部通过
- 没有无理由跳过的测试
- 没有假阳性(因错误原因而通过的测试)
### 10.2 四类常见故障
**故障一:测试通过但断言方式错误。** 文档写 `console.log(result) // [1, 2, 3]`,若用 `toBe([1, 2, 3])` 则因引用不等而失败或误导,必须用 `toEqual([1, 2, 3])`。
**故障二:异步测试超时。** 根因是未 await,修复方式是给 `it` 回调加 `async` 并对 Promise 结果 await:
```javascript
// Bad —— 缺少 await,断言的是 Promise 而非结果
it('should fetch data', () => {
const data = fetchData()
expect(data).toBeDefined()
})
// Good
it('should fetch data', async () => {
const data = await fetchData()
expect(data).toBeDefined()
})
故障三:DOM 测试报 "document is not defined"。 根因是缺少 jsdom 环境声明,在文件顶部添加 /** @vitest-environment jsdom */ 即解决。
故障四:测试间相互污染。 前一个用例修改了 document.body 或遗留 mock,导致后一个用例结果漂移。标准解法:
afterEach(() => {
document.body.innerHTML = ''
vi.restoreAllMocks()
})
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0624
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
最新内容推荐
LobeHub deep-review 对抗式验证子代理:逐条证伪代码审查发现的设计与实现Go 项目目录布局详解:project-layout 标准目录结构的设计原则与实操指南深入 goccy/go-yaml:lazydocker 的 YAML 编解码、Anchor/Alias 与 YAMLPath 实现解析CrewAI FirecrawlScrapeWebsiteTool 完全指南:让 Agent 把任意网站抓成干净 MarkdownSupabase pm-the-docs:文档创作 Frame/Shape 阶段的决策支持技能——受众、产品阶段与跨仓库范围判定Headroom 贡献指南全解:从 PR 工作流、Real behavior proof 到本地开发环境与架构原则Files to ReviewStarship Gruvbox Rainbow Preset 实战指南:用 Palette + Powerline 构建"彩虹"渐变式终端提示符Playwright Response 类详解:HTTP 响应的获取、断言与源码级实现原理Axios 请求别名方法详解:request、get/post 到 query 与 Form 简写的完整机制
项目优选
收起
deepin linux kernel
C
33
18
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
855
1.34 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
589
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Markdown
77
23
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.13 K
2.73 K
暂无描述
Markdown
895
5.79 K
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.56 K
1.01 K
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
998
511
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
908
1.83 K
openGauss kernel ~ openGauss is an open source relational database management system
C++
213
313