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
110
GASええやん
u76ner
1
80
競プロへの誘 -いざな-
u76ner
0
760
Other Decks in Programming
See All in Programming
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
820
"config" ってなんだ? / What is "config"?
okashoi
0
240
Kotlin Multiplatform at Stable and Beyond (Android Makers 2024)
zsmb
0
290
新宿ダンジョンを可視化してみた
satoshi7190
2
260
Java 22 Overview
kishida
1
180
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
380
What We Can Learn From OSS
inouehi
0
420
R言語の環境構築と基礎 Tokyo.R 112
bob3bob3
0
270
Elm 0.19.0 Changes
bkuhlmann
0
490
VS Code をプロダクトにどう取り込むか
onomax
1
370
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
200
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
Gamification - CAS2011
davidbonilla
76
4.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
60
14k
How to Ace a Technical Interview
jacobian
272
22k
YesSQL, Process and Tooling at Scale
rocio
164
13k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
40
4.4k
Into the Great Unknown - MozCon
thekraken
10
1k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
187
16k
A Philosophy of Restraint
colly
197
16k
Music & Morning Musume
bryan
41
5.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
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