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
27
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
32
【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
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
580
「AI時代、配布するPythonコードをどう守るか: 難読化の実験と判断軸」 #PyconJP2026
pkshadeck
PRO
2
180
高専キャリア LT 発表内容
crysta1221
6
5.6k
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
130
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
2
810
『寄り添うラジオ』をAIで作る 体験価値から逆算した、会話しないUXと品質設計
theoriatec2024
3
130
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
110
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
230
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
新卒PdEのリアル
ryu1013
1
440
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.5k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
600
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
The SEO identity crisis: Don't let AI make you average
varn
0
550
My Coaching Mixtape
mlcsv
0
310
Utilizing Notion as your number one productivity tool
mfonobong
4
580
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
KATA
mclloyd
PRO
35
15k
Transcript
2026年9月 Vitest 5.0全5回で静かに変わる挙動 ④ 既定値とアサーション 赤神 青空
▪各テストの前に clearMocks が既定で true に vi.clearAllMocks() が走る これまで(4系) モックの呼び出し履歴がテストをまたいで残る 実行順に依存するテストが生まれやすい
順序依存のテストを生む代表的な原因だった これから(5.0) 履歴は毎テスト前にクリアされる 実装は保持されるので、差し替えは残る {'従来の挙動に戻すなら clearMocks': 'false '} 既定値の変更なので、設定を書き換えていなくても挙動が変わります。 今ココ 挙動の変更 2/6
▪4系では警告のうえ、テストは通っていた await し忘れたアサーションが失敗になる resolves / rejects / toMatchFileSnapshot が対象。 ts
test('unawaited assertion', async () => { expect(promise).resolves.toBe(1) // 5.0 では失敗する await expect(promise).resolves.toBe(1) // これが正しい }) 今ココ 挙動の変更 3/6
▪確定しないまま待ち続けることがなくなった expect.poll がタイムアウトで reject する コールバックが AbortSignal を受け取るので、実行中の処理を打ち切れる。 ts await
expect.poll(async ({ signal }) => { const response = await fetch('/api/status', { signal }) return response.status }, { timeout: 1000 }).toBe(200) 今ココ 挙動の変更 4/6
▪Date と並んで、既定で対象に入った フェイクタイマーが Temporal もモックする vi.useFakeTimers() にも、フェイクタイマー無しの vi.setSystemTime() にも効く。 ts
vi.setSystemTime(0) Temporal.Now.instant().epochMilliseconds // 0 // 対象から外すなら toNotFake に Temporal を足す 今ココ 挙動の変更 5/6
▪ 第4回のまとめ ここはコードを直さなくても結果が変わるところ。 既定値 clearMocks が true。 Temporal もモック対象。 アサーション
await 漏れは失敗。 expect.poll はタイムアウトで reject。 上げたあとにテストが落ちたら、まずこの4つを疑ってください。 今ココ おわりに 6/6