Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
【Vitest5.0大解剖】Vitest5.0で増えた書き方
Search
赤神青空
PRO
September 06, 2026
Video
Programming
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【Vitest5.0大解剖】Vitest5.0で増えた書き方
赤神青空
PRO
September 06, 2026
Video
More Decks by 赤神青空
See All by 赤神青空
【ORM不要論の歴史】2026年の不要論は何を言っているのか
akagami
PRO
0
13
【ORM不要論の歴史】運用の問題は、いまの責務論に直結する
akagami
PRO
0
11
【ORM不要論の歴史】なぜ生まれ、20年前に何を言われたか
akagami
PRO
0
19
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
95
【ORM不要論の歴史】「ORM」と呼ばれているものが3つある
akagami
PRO
0
53
【Vitest5.0大解剖】Vitest5.0で消えた記法とAPI
akagami
PRO
0
24
【Vitest5.0大解剖】Vitest5.0で静かに変わる挙動
akagami
PRO
0
27
【Vitest5.0大解剖】Vitest5.0のTrace View
akagami
PRO
0
28
【Vitest5.0大解剖】Vitest5.0は何が速くなったのか
akagami
PRO
0
28
Other Decks in Programming
See All in Programming
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
130
フロントエンドUIフレームワークのこれまでとこれから
ssssota
1
800
スマート反転とウェブアクセシビリティ
camiha
0
150
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
600
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
120
Press start. Python's next generation.
willingc
PRO
3
320
Building an Out-of-Order CPU
latte72
1
720
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
170
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
470
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
160
Webプラットフォームで議論されているセキュリティ課題 / Security issues being discussed on Web Platforms
petamoriken
0
250
Deep dive into the select statement (GopherCon UK)
jespino
0
170
Featured
See All Featured
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
How GitHub (no longer) Works
holman
316
150k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Designing Experiences People Love
moore
143
24k
How to build a perfect <img>
jonoalderson
1
6k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Transcript
2026年9月 Vitest全5回5.0③ vi.when で増えた書き方 とベンチマーク 赤神 青空
▪mockImplementation vi.whenの中で引数を分岐する必要がなくなった — 引数ごとの振る舞い 引数は深い等価比較で照合され、 expect.any() などの非対称マッチャーも使える。 ts const findById
= vi.fn() vi.when(findById) .calledWith(1) .thenResolve({ id: 1, name: 'Ella' }) .calledWith(2) .thenResolve({ id: 2, name: 'Gracie' }) .calledWith(expect.any(Number)) .thenReject(new Error('not found')) 今ココ API 2/7
▪回数の制御と、消費されたかの検証 vi.when の周辺 、または times オプションで振る舞いの回数を制限できる toHaveBeenExhausted で、登録した振る舞いがすべて消費されたかを検証できる 詳しい使い分けは公式の Conditional
Mocking レシピにまとまっている thenReturnOnce 今ココ API 3/7
▪bench ベンチマークAPIの書き換え はトップレベル import ではなくなった bench はテストコンテキストのフィクスチャになり、通常の test() の中で使う。 ts
test('compare parsers', async ({ bench }) => { const result = await bench.compare( bench('JSON.parse', () => { JSON.parse('{"key":"value"}') }), bench('custom parser', () => { customParse('{"key":"value"}') }), ) expect(result.get('JSON.parse')).toBeFasterThan(result.get('custom parser')) }) 今ココ API 4/7
▪独立した存在から、テストの中の道具へ bench の位置づけが変わった Vitest 系 Vitest . parse.bench.ts parse.bench.ts bench()
※トップレベル import ベンチマークは、テストとは別の存在 出⼒もレポーターとは別扱い テストランナーの機能 ✕ フィクスチャ ✕ ライフサイクルフック ✕ リトライ‧フィルタ ✕ アサーション 使えない test(...) bench ※テストコンテキストの⼀部 テストランナーの機能 ◯ フィクスチャ ◯ ライフサイクルフック ◯ リトライ‧フィルタ ◯ アサーション そのまま使える∕出⼒は default‧json レポーターに含まれる テストコンテキストのフィクスチャになったことで、ランナーの機能が使える 今ココ API 5/7
▪比較と差し替え ベンチマークの周辺 で結果を保存し、 bench.from() でベースラインと比較できる 組み込みのTinybenchを、独自のベンチマークプロバイダに差し替えられる writeResult 今ココ API 6/7
▪ 第3回のまとめ 引数ごとのモックと、テストの中で書くベンチマーク。 vi.when 引数ごとの振る舞いを、分岐を書かずに定義できる。 bench フィクスチャになり、ランナーの機能がそのまま使える。 どちらも既存のテストを壊さない追加です。 今ココ おわりに
7/7