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
310
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
90
競プロへの誘 -いざな-
u76ner
0
940
Other Decks in Programming
See All in Programming
Vibe codingでおすすめの言語と開発手法
uyuki234
0
140
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
170
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
250
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
680
Developing static sites with Ruby
okuramasafumi
0
340
はじめてのカスタムエージェント【GitHub Copilot Agent Mode編】
satoshi256kbyte
0
130
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
610
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
220
JETLS.jl ─ A New Language Server for Julia
abap34
2
470
2年のAppleウォレットパス開発の振り返り
muno92
PRO
0
130
Basic Architectures
denyspoltorak
0
150
ゆくKotlin くるRust
exoego
1
180
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
130
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
410
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
First, design no harm
axbom
PRO
1
1.1k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
37
We Are The Robots
honzajavorek
0
130
ラッコキーワード サービス紹介資料
rakko
0
1.9M
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
180
Automating Front-end Workflow
addyosmani
1371
200k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
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