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
250
mockdateええやん
WASD Inc. LT会(仮)
2022-01-14
U76NER
January 14, 2022
Tweet
Share
More Decks by U76NER
See All by U76NER
JSのクラスの後ろ向きな話
u76ner
0
120
GASええやん
u76ner
1
84
競プロへの誘 -いざな-
u76ner
0
790
Other Decks in Programming
See All in Programming
CSC307 Lecture 12
javiergs
PRO
0
220
Rubyのパフォーマンスプロファイリングの改善 / Enhancing performance profiling for Ruby
osyoyu
1
410
How to use Macrobenchmark
veronikapj
0
160
유연한 Composable 설계
l2hyunwoo
0
380
Composing an API the *right* way (Droidcon Berlin 2024)
zsmb
1
450
社内 LT 会を発足し、アウトプット文化を醸成させるために考えたこと・やったこと / Starting internal LT meetings and fostering an output culture
mackey0225
3
120
ぼっちを避けて楽しむためのアノテコノテ / Various Tips and Tricks to Avoid Loneliness and Have Fun
nrslib
3
1.7k
OpenAI/Gemini APIを使って EPUBを翻訳するCLIツールをつくってみた
tomiyan
0
790
DDDを志して3年経ったら「DDDの皮を被ったクリーンアーキテクチャ」になった話【デブサミ2024夏】
texmeijin
1
620
Introduction of Happy Eyeballs Version 2 (RFC8305) to the Socket library
coe401_
1
220
Android開発者のための Kotlin Multiplatform入門
ntaro
0
190
Play Billing Library 7.0.0 変更点まとめ@potatotips#88
kako351
0
160
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
Adopting Sorbet at Scale
ufuk
71
8.8k
The Language of Interfaces
destraynor
151
23k
Music & Morning Musume
bryan
43
5.9k
Navigating Team Friction
lara
181
13k
How GitHub Uses GitHub to Build GitHub
holman
471
290k
Code Review Best Practice
trishagee
58
16k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
20
7.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
35
6.3k
Happy Clients
brianwarren
94
6.6k
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