关于 jest
jest 是 Jest Roblox 的技能参考;Jest Roblox 是面向 Roblox 的 Jest Luau 移植版。它说明适配后的 API 及其与 JavaScript Jest 的差异,并涵盖测试、模拟、快照和基准测试。
主要功能
- 01说明 Luau 特有的 Jest 差异
- 02介绍测试结构与匹配器
- 03记录异步和快照测试
- 04说明计时器与模块模拟
- 05提供基准测试指南
适用场景
- 01编写 Roblox Luau 测试
- 02将 Jest 示例适配到 Luau
- 03模拟模块和计时器
- 04设置快照测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ christopher-buss/ skills --skill jest安装后在 Claude Code 中输入/jest确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
GENERATION.mdreferences/advanced-benchmarking.mdcore-asymmetric-matchers.mdcore-configuration.mdcore-deviations.mdcore-matchers.mdcore-mocking.mdcore-test-structure.mdfeature-async-testing.mdfeature-custom-matchers.mdfeature-global-mocks.mdfeature-jest-extended.mdfeature-module-mocking.mdfeature-snapshot-testing.mdfeature-test-filtering.mdfeature-timer-mocks.md详细介绍
基于 Jest Roblox v3.x,生成于 2026-02-07。
Jest Roblox 是面向 Roblox 平台的 Jest Luau 移植版。它紧密遵循上游 Jest API,但由于 Luau 语言限制,存在一些关键差异。
与 JS Jest 的关键差异:
- 使用
.never而不是.not(保留关键字) jest.fn()返回两个值:mock 对象和转发函数- 在 Luau 中,
0、""、{}都是真值(只有false和nil是假值) - 必须显式导入所有全局变量(
describe、expect、jest等) .each使用表语法,而不是标记模板字面量- 自定义匹配器将
self作为第一个参数
使用此代码库时,请先阅读 core-deviations。
核心参考
| 主题 | 描述 | 参考 |
|---|---|---|
| 差异 | Luau/Roblox 与 JS Jest 的所有差异 | core-deviations |
| 测试结构 | describe、test/it、钩子、.each、.only/.skip | core-test-structure |
| 匹配器 | toBe、toEqual、toContain、toThrow、mock 匹配器 | core-matchers |
| 非对称匹配器 | expect.anything/any/nothing/callable、.resolves/.rejects | core-asymmetric-matchers |
| Mock | jest.fn()、spyOn、mock.calls、返回值 | core-mocking |
| 配置 | jest.config.lua、runCLI、报告器、选项 | core-configuration |
功能
测试模式
| 主题 | 描述 | 参考 |
|---|---|---|
| 异步测试 | Promise、done 回调、.resolves/.rejects | feature-async-testing |
| 自定义匹配器 | expect.extend()、self 参数、isNever | feature-custom-matchers |
| 快照测试 | toMatchSnapshot、属性匹配器、序列化器 | feature-snapshot-testing |
| 测试筛选 | testMatch、testPathPattern、testNamePattern | feature-test-filtering |
Mock
| 主题 | 描述 | 参考 |
|---|---|---|
| 计时器 Mock | useFakeTimers、Roblox 计时器、engineFrameTime | feature-timer-mocks |
| 全局 Mock | jest.globalEnv、spyOn 全局变量、库 Mock | feature-global-mocks |
| 模块 Mocking | jest.mock()、isolateModules、resetModules | feature-module-mocking |
扩展匹配器
| 主题 | 描述 | 参考 |
|---|---|---|
| Jest Extended | 当核心匹配器表达能力不足时:精确布尔值、范围、成员资格、条目、调用顺序、副作用 | feature-jest-extended |
高级
| 主题 | 描述 | 参考 |
|---|---|---|
| 基准测试 | benchmark()、Reporter、Profiler、CustomReporters | advanced-benchmarking |
评论
支持 Markdown