Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【Vitest5.0大解剖】Vitest5.0で増えた書き方
Search
赤神青空
PRO
September 06, 2026
Video
Programming
65
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 赤神青空
【AWS資格のニュース】SAP が SAP-C03 に変わります
akagami
PRO
0
2
【力学 #5】単振り子と小角近似
akagami
PRO
0
5
【AIニュース】Genie 4 とは何か
akagami
PRO
0
15
【基本情報対策】IPアドレスとサブネットマスク
akagami
PRO
0
15
GPT-6 Cyber とは何か
akagami
PRO
0
15
【AWSの新サービス】Amazon ECS Gateway とは何か
akagami
PRO
0
20
【力学 #4】単振動:ばねの運動方程式を解く
akagami
PRO
0
9
【力学 #4】単振動:ばねの運動方程式を解く
akagami
PRO
0
10
Cloudflare の AI で他人の会話が混ざった?
akagami
PRO
0
27
Other Decks in Programming
See All in Programming
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
240
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
310
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
970
Modernizing iOS Apps
seyfoyun
0
150
protojson における文字化けの扱い
kazuki1023
0
310
Event is what happens
moro
2
4.1k
クラウドゲーミングのパフォーマンス最適化に挑む / Cloud Gaming Performance Tuning
vivion
0
330
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
200
當我們開始不讀 Code - AI Agent 時代,Code Review 與 Clean Code 還剩下什麼?
jame2408
1
370
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Engineering Biometric UX Across Android Versions | DroidKnights 2026
ryunen344
1
190
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Designing for Timeless Needs
cassininazir
1
560
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Paper Plane
katiecoart
PRO
6
55k
Site-Speed That Sticks
csswizardry
13
1.6k
The World Runs on Bad Software
bkeepers
PRO
72
12k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2.1k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.8k
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