闲社服务运行正常AI智能体自动化平台
v

Vitest测试实践

技能标识:vitest-testing

Vitest testing framework patterns and best practices. Use when writing unit tests, integration tests, configuring vitest.config, mocking with vi.mock/vi.fn, using snapshots, or setting up test coverage. Triggers on describe, it, expect, vi.mock, vi.fn, beforeEach, afterEach, vitest.

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 1.1.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

Vitest测试实践

Vitest 最佳实践

快速参考

ts
import { describe, it, expect, beforeEach, vi } from vitest

describe(功能名称, () => {
beforeEach(() => {
vi.clearAllMocks()
})

it(应执行特定操作, () => {
expect(actual).toBe(expected)
})

it.todo(计划中的测试)
it.skip(暂时禁用)
it.only(开发时仅运行此项)
})

常用断言

ts
// 相等性
expect(value).toBe(42) // 严格相等 (===)
expect(obj).toEqual({ a: 1 }) // 深度相等
expect(obj).toStrictEqual({ a: 1 }) // 严格深度相等(检查类型)

// 真值判断
expect(value).toBeTruthy()
expect(value).toBeFalsy()
expect(value).toBeNull()
expect(value).toBeUndefined()

// 数字
expect(0.1 + 0.2).toBeCloseTo(0.3)
expect(value).toBeGreaterThan(5)

// 字符串/数组
expect(str).toMatch(/pattern/)
expect(str).toContain(子字符串)
expect(array).toContain(元素)
expect(array).toHaveLength(3)

// 对象
expect(obj).toHaveProperty(key)
expect(obj).toHaveProperty(nested.key, value)
expect(obj).toMatchObject({ subset: 属性子集 })

// 异常
expect(() => fn()).toThrow()
expect(() => fn()).toThrow(错误消息)
expect(() => fn()).toThrow(/pattern/)

异步测试

ts
// Async/await(推荐)
it(获取数据, async () => {
const data = await fetchData()
expect(data).toEqual({ id: 1 })
})

// Promise 匹配器 - 务必使用 await
await expect(fetchData()).resolves.toEqual({ id: 1 })
await expect(fetchData()).rejects.toThrow(错误)

// 错误写法 - 会产生误报
expect(promise).resolves.toBe(value) // 缺少 await!

快速模拟参考

ts
const mockFn = vi.fn()
mockFn.mockReturnValue(42)
mockFn.mockResolvedValue({ data: value })

expect(mockFn).toHaveBeenCalled()
expect(mockFn).toHaveBeenCalledWith(arg1, arg2)
expect(mockFn).toHaveBeenCalledTimes(2)

附加文档

测试方法快速参考

方法用途
it() / test()定义测试
describe()
分组测试 | | beforeEach() / afterEach() | 每个测试的钩子 | | beforeAll() / afterAll() | 每个套件的钩子 | | .skip | 跳过测试/套件 | | .only | 仅运行此项 | | .todo | 占位符 | | .concurrent | 并行执行 | | .each([...]) | 参数化测试 |

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 vitest-testing-1775975348 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 vitest-testing-1775975348 技能

通过命令行安装

skillhub install vitest-testing-1775975348

下载

⬇ 下载 vitest-testing v1.1.0(免费)

文件大小: 10.04 KB | 发布时间: 2026-4-13 12:30

v1.1.0 最新 2026-4-13 12:30
- New best practices and usage reference for Vitest testing framework.
- Includes quick examples for unit/integration tests, assertions, mocking (vi.fn, vi.mock), async testing, and test metadata (skip, only, todo).
- Reference tables summarize common API methods and hooks.
- Links to additional documentation on mocking, configuration, and patterns.
- Emphasizes correct handling of async/promise tests to avoid false positives.
返回顶部