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
mockdateええやん
Search
U76NER
January 14, 2022
Programming
0
300
mockdateええやん
WASD Inc. LT会(仮)
2022-01-14
U76NER
January 14, 2022
Tweet
Share
More Decks by U76NER
See All by U76NER
JSのクラスの後ろ向きな話
u76ner
0
130
GASええやん
u76ner
1
89
競プロへの誘 -いざな-
u76ner
0
920
Other Decks in Programming
See All in Programming
GitHub Copilotを使いこなせ!/mastering_github_copilot!
kotakageyama
2
480
AsyncSequenceとAsyncStreamのプロポーザルを全部読む!!
s_shimotori
1
220
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
510
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.7k
Software Architecture
hschwentner
6
2.4k
AI Agent 時代的開發者生存指南
eddie
4
2.2k
オンデバイスAIとXcode
ryodeveloper
0
370
マイベストのシンプルなデータ基盤の話 - Googleスイートとのつき合い方 / mybest-simple-data-architecture-google-nized
snhryt
0
110
外接に惑わされない自システムの処理時間SLIをOpenTelemetryで実現した話
kotaro7750
0
140
ビルドプロセスをデバッグしよう!
yt8492
0
180
Claude Agent SDK を使ってみよう
hyshu
0
1.5k
Blazing Fast UI Development with Compose Hot Reload (droidcon London 2025)
zsmb
0
440
Featured
See All Featured
For a Future-Friendly Web
brad_frost
180
10k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.6k
Gamification - CAS2011
davidbonilla
81
5.5k
Fireside Chat
paigeccino
41
3.7k
The Pragmatic Product Professional
lauravandoore
36
7k
Code Review Best Practice
trishagee
72
19k
Six Lessons from altMBA
skipperchong
29
4k
Producing Creativity
orderedlist
PRO
348
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
A Modern Web Designer's Workflow
chriscoyier
697
190k
BBQ
matthewcrist
89
9.9k
Transcript
mockdateええやん LT会(仮) 2022/01/14 u76ner
時刻を使った関数 2 - 時刻を使った関数を書くことはよくある - 例)現在時刻が2022/1/14より早い日付かどうかを返す関数
テストどうすんねん問題 3 - テストを実行する時刻によって結果が変わってしまう - テストが書けない ?????????????
今までどうしてたか 4 - 現在時刻を引数に渡すことでテストを書いてた - デフォルト値で現在時刻を書いておけば使う分には意識しなくて良い
だけども 5 - まず使うことはない引数を書いておくのはよくなさそう - 意図しない使い方をされる
- 引数増やすときの順番を間違える 無理やり引数渡されて…シテ...状態になった関数くん 順序逆だよ
だけども 6 - まず使うことはない引数を書いておくのはよくなさそう - 別の関数で使うときに引数を渡し忘れる こうなると人間が頑張ってミスを見つけるしかない
mockdate 7 - mockdate - https://www.npmjs.com/package/mockdate - テストを実行するときの時刻を固定できるライブラリ
- 中の実装もシンプルで面白い - よいところ - dayjsとかを使っててもok - dayjsも結局中身はDateなので - 使い方が超楽
mockdate 8 - 使い方は超楽 - 使う前にset() - 使った後にreset() -
これだけ
こんな感じでどうでしょう 9 - 時刻ごとにdescribeでまとめると書きやすいかも?
10