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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
U76NER
January 14, 2022
Programming
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
mockdateええやん
WASD Inc. LT会(仮)
2022-01-14
U76NER
January 14, 2022
More Decks by U76NER
See All by U76NER
JSのクラスの後ろ向きな話
u76ner
0
140
GASええやん
u76ner
1
100
競プロへの誘 -いざな-
u76ner
0
1k
Other Decks in Programming
See All in Programming
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
510
技術記事、 専門家としてのプログラマ、 言語化
mizchi
14
7.4k
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
150
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
310
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
アルゴリズムは何を圧縮しているのか ─ Haskell から育った「圧縮代数」というメンタルモデル
naoya
16
3.3k
吝嗇家のためのAI活用 / AI development for miser - ChatGPT + Issue Driven Development
tooppoo
0
180
Prismを使った型安全な暗号化_関数型まつり2026
_fhhmm
0
120
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
500
1B+ /day規模のログを管理する技術
broadleaf
0
130
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
490
symfony/aiとlaravel/boost
77web
0
120
Featured
See All Featured
Designing Experiences People Love
moore
143
24k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
Ethics towards AI in product and experience design
skipperchong
2
330
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
500
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.6k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
890
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
410
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.4k
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