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
単体テストのすすめ
Search
uesho
April 18, 2020
Programming
0
25
単体テストのすすめ
身内勉強会で使用。
uesho
April 18, 2020
Tweet
Share
More Decks by uesho
See All by uesho
AIによるコードレビューで個人開発の質を高める
uesho
0
800
Other Decks in Programming
See All in Programming
コントリビューターによるDenoのすゝめ / Deno Recommendations by a Contributor
petamoriken
0
200
AIによるイベントストーミング図からのコード生成 / AI-powered code generation from Event Storming diagrams
nrslib
2
1.8k
CSC307 Lecture 09
javiergs
PRO
1
830
CSC307 Lecture 08
javiergs
PRO
0
660
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
0
890
AgentCoreとHuman in the Loop
har1101
5
220
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
970
CSC307 Lecture 06
javiergs
PRO
0
680
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
120
余白を設計しフロントエンド開発を 加速させる
tsukuha
7
2.1k
AIと一緒にレガシーに向き合ってみた
nyafunta9858
0
160
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
770
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.3k
HDC tutorial
michielstock
1
350
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
450
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
The untapped power of vector embeddings
frankvandijk
1
1.6k
Transcript
単体テストのすすめ uesho
単体テスト(Unit Test)とは? • ユニット(モジュール、クラス、メソッド) 単位でテストするからユニット テストと言う • アプリケーションを横断的・全体的にテストする結合テストに比べ て、非常に小さい、軽量なテスト
原則 モジュールの数だけ、テストコードを書く Module1 Module2 Module3 Test for Module1 Test for
Module1 Test for Module1 Application Test for Application
原則 パターンの数だけ、テストコードを書く Function パターン1 パターン2 パターン3 Test for Function
例
ポイント • テストコードは正常形だけでなく、異常系も書く • テストコードは、適切な粒度で書く ◦ パターンを意識しすぎると、冗長で無駄なテストが増えていく (保守性が低下する) • テストコードは実装ではなく仕様に基づいて書く
• テストコードが書きづらい関数は、よくない関数 ◦ 何をするか不明瞭 ◦ やっていることが多すぎる などなど
メリット • 仕様が明確になる ◦ OSSとかもテストコードを見ると挙動がわかったりする • 機能追加やリファクタリングが容易になる ◦ これ本当に楽になる!!!!!!!
原則 テストコードはこまめに書く!!!TDDが理想 • 「アプリケーションを作って最後に書く」これはアカン ◦ テストによって見つけられるはずの早期不具合が見つけられ なくなる ◦ 一気にテストコードを書くのは苦痛...
原則 テストコードは常にアップデートする • テストコードを見て仕様が分かるのが理想 • 仕様がアップデートされるたびにテストコードがアップデートされる べき • そうしないとテストコードが腐る →
自動テスト(CI)を活用する
ユニットテストライブラリ プログラミング言語ごとに主要なユニットテストライブラリがあるので、言語・ 開発環境に合わせ選択する 書き方も大体どのライブラリも似ているが、ライブラリごとに異なる記法もあ るので、これは覚えましょう
単体テストを書くにあったって • 「何を確認するか」がWhat • それを確認するための具体的なテストコードがHow ◦ Whatがないと、「色々書いてあるけど何を確認しているん だ?」となる • テスト観点をテストメソッド名に書く
Given-When-Then • GIVEN : テストの前提条件を表す。 • WHEN : 操作 •
THEN : 期待する結果 を明示的に記述する ※似たようなものに、Arrange-Act-Assert というものもある
テストコードは、品質をあげるものではなく維 持するもの!!!! サービス提供のスピードが要求される昨今、テストコードは必要不可欠 もし、現在テストがなく今後サービスを成長させていくのであれば、少しづつでもテストを書いていこう