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
mikan
August 26, 2023
Technology
0
180
書評: 単体テストの考え方/使い方
HACK.BAR 8/26の発表資料です
https://hackbar.connpass.com/event/290968/
mikan
August 26, 2023
Tweet
Share
More Decks by mikan
See All by mikan
UIの構成要素に関する考察
mikanichinose
0
12
再考: 監視可能オブジェクト
mikanichinose
0
27
マルチモジュール懐疑派だったかつての自分に送る マルチモジュールの効能
mikanichinose
0
150
ComposeでリストUIをDraggableにする方法
mikanichinose
0
770
Composeのライフサイクル対応を支援するLifecycleEventEffectの紹介
mikanichinose
1
420
Composeでカスタムレイアウトを組むときの気持ち
mikanichinose
0
280
Other Decks in Technology
See All in Technology
スクラムに出会って「できた」を実感できるようになってきた話 / Scrum makes me feel like I can do it
yayoi_dd
2
110
本番環境で Cloudflareを 使ってみた話
miu_crescent
2
120
OPENLOGI Company Profile for engineer
hr01
1
2.1k
エンジニアゼロの組織から内製開発の DX をどう実現したのか / How did we achieve DX in in-house development in an organization with zero engineers?
genkiogasawara
6
1.9k
IaCからAWSに入門した初心者が CloudFormationを通して考えた「AWS操作」の使い分け
maimyyym
3
670
TailwindCSSでUIライブラリを作る際のハマりどころ
shuta13
0
220
Shinagile 2024
kawaguti
PRO
2
120
AWSの生成AI入門書を執筆しました🎉
minorun365
PRO
0
130
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
1
130
【リラン】AIの光と闇?失敗しないために知っておきたいAIリスクとその対応 ①政府の動き編
tkhresk
0
130
動画配信サービスのフロントエンド実装に学ぶ設計原則
yud0uhu
0
120
生成AIと産業向けソフトウェアの自動生成 〜 ハノーバーメッセ2024より〜
kioto
2
420
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
StorybookのUI Testing Handbookを読んだ
zakiyama
13
4.7k
Clear Off the Table
cherdarchuk
85
310k
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Optimising Largest Contentful Paint
csswizardry
13
2.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Product Roadmaps are Hard
iamctodd
45
9.8k
KATA
mclloyd
16
12k
A Philosophy of Restraint
colly
197
16k
Transcript
書評 : 単体テストの考え方 / 使い方 HACK.BAR 福岡 08/26 mikan( 一瀬喜弘)
自己紹介 object Mikan { val name = " 一瀬喜弘" val
company = "karabiner.tech" val hobby = listOf( " 漫画", " アニメ", " ゲーム", " 折り紙", "OSS 開発・コントリビュート", ) }
今日は この本の 紹介をします
まず始めに
エンジニア 全員 読んだほうがいい
None
t_wada さんもニッコリ 「この本を読めば私が言いそうなことが結構 載っている」 「失職の危機その1 」
この本を読むと以下のような疑問を解決してくれます " 単体" テストってどういう粒度なんだ? テストメソッドの命名ってなにが正しいんだ? " 良い" 単体テストを書くためには何を意識すればいいのか? モックとかスタブの使って良いとき/ 悪いときっていつだ?
前提認識 プロダクションコードもテストコードも全て 負債 書けば書くほど保守性は下がる = 次の開発はより時間がかかる確立が高くなる
テストの必要性
テストの必要性 開発を持続可能にする
持続可能とは?
持続不可能な状態 = 次の開発に 掛かるコストが無限大
None
無限大に発散しないようにする 戦略が 自動 テスト ` `
単体テストとは ?
単体と呼ばれる少量のコードを検証する 実行時間が短い 隔離された状態で実行可能
" 隔離された状態 " ?
" 単体 " ?
古典学派 vs ロンドン学派
古典学派
隔離 = 他のテストケースが影響 を与えないように隔離する 順番を変えても結果が同じ 依存はテストケース実行前に毎回作る
単体 = 振る舞い あるインプットを与えたときに期待したアウ トプットが出てくることを検証する 戻り値 or 状態 を検証
ロンドン学派
隔離 = テスト対象をそれ以外の 依存から隔離する 依存はすべてモックにする
単体 = クラス アウトプットが期待通りか 協力者オブジェクトのメソッドを決った回数 実行したか
この本は古典学派の立場を取っています → 理由は読んだら書いてあります
良いテストコードは 4 つの性質を持っている リファクタリング耐性 リグレッションに対する保護 迅速なフィードバック 保守性 → どのようなバランスで持つべきなのかが解説してある
最後に
全員読みましょう