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
42
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
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
200
AI-Powered Domain-Driven Design
ziobrando
0
430
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
340
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.7k
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
Coding with AI: How to trust the storyteller (AWS Community Day Adria, Ljubljana 2026)
slobodan
0
140
Railsのためのパスキー実践入門 〜マルチテナントSaaSでの意思決定〜
utakaha
4
3.8k
現場と育てるRailsモデリング 〜Spreadsheetから始めたモデル設計〜
siroemk
2
1.2k
作って学ぶSpring BootのAuto Configuration / JJUG Night Seminar 2026-10-19
rshindo
0
220
AI時代のTerminal環境を UNIX哲学で設計・運用する
yasunori0418
1
350
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
970
Featured
See All Featured
How to Ace a Technical Interview
jacobian
280
24k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
6
910
Paper Plane
katiecoart
PRO
6
55k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
3.1k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Mobile First: as difficult as doing things right
swwweet
225
10k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.7k
Leo the Paperboy
mayatellez
11
2.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.2k
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