jest について
jest は、Roblox 向けの Jest の Luau 移植版である Jest Roblox のスキルリファレンスです。適応された API と JavaScript 版 Jest との違いを説明し、テスト、モック、スナップショット、ベンチマークを扱います。
主な機能
- 01Luau 固有の Jest の差異を解説
- 02テスト構造とマッチャーを紹介
- 03非同期テストとスナップショットを記載
- 04タイマーとモジュールのモックを説明
- 05ベンチマークのガイドを収録
活用シーン
- 01Roblox Luau テストの作成
- 02Jest の例を 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 との重大な相違点:
- 予約語のため、
.notではなく.neverを使用します jest.fn()は2つの値(モックオブジェクトと転送関数)を返します- Luau では
0、""、{}は真値です(偽値はfalseとnilのみです) - すべてのグローバル(
describe、expect、jestなど)は明示的にインポートする必要があります .eachはタグ付きテンプレートリテラルではなく、テーブル構文を使用します- カスタムマッチャーは、最初のパラメーターとして
selfを受け取ります
このコードベースで作業する際は、まず core-deviations をお読みください。
コアリファレンス
| トピック | 説明 | リファレンス |
|---|---|---|
| 相違点 | JS Jest との Luau/Roblox におけるすべての相違点 | core-deviations |
| テスト構成 | describe、test/it、フック、.each、.only/.skip | core-test-structure |
| マッチャー | toBe、toEqual、toContain、toThrow、モックマッチャー | core-matchers |
| 非対称マッチャー | expect.anything/any/nothing/callable、.resolves/.rejects | core-asymmetric-matchers |
| モック | 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 |
モック
| トピック | 説明 | リファレンス |
|---|---|---|
| タイマーモック | useFakeTimers、Roblox タイマー、engineFrameTime | feature-timer-mocks |
| グローバルモック | jest.globalEnv、グローバルの spyOn、ライブラリのモック | feature-global-mocks |
| モジュールのモック | jest.mock()、isolateModules、resetModules | feature-module-mocking |
拡張マッチャー
| トピック | 説明 | リファレンス |
|---|---|---|
| Jest Extended | コアマッチャーでは表現力が足りない場合に使用します。厳密な真偽値、範囲、メンバーシップ、エントリー、呼び出し順、副作用に対応します | feature-jest-extended |
高度な機能
| トピック | 説明 | リファレンス |
|---|---|---|
| ベンチマーク | benchmark()、Reporter、Profiler、CustomReporters | advanced-benchmarking |
コメント
Markdown 対応