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
Laravelでテストしやすいコードを書く5 / 5 tips of building tes...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
nunulk
November 14, 2020
Programming
0
320
Laravelでテストしやすいコードを書く5 / 5 tips of building testable modules in Laravel
nunulk
November 14, 2020
Tweet
Share
More Decks by nunulk
See All by nunulk
Design It! in a nutshell
nunulk
1
270
PHP Getting Faster
nunulk
0
280
How does learning English broaden your world?
nunulk
0
370
Testing on Laravel
nunulk
1
1.5k
Vue.js + TypeScript + Firebase
nunulk
0
960
Nuxt.js in TypeScript
nunulk
1
440
A startup meets Laravel + Vue.js
nunulk
1
2k
Unit Testing Laravel
nunulk
0
490
A Third-rate Programmer Talked about a Survival Strategy for Software Engineers
nunulk
3
590
Other Decks in Programming
See All in Programming
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
SourceGeneratorのススメ
htkym
0
190
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
440
Vibe codingでおすすめの言語と開発手法
uyuki234
0
220
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
140
KIKI_MBSD Cybersecurity Challenges 2025
ikema
0
1.3k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.3k
dchart: charts from deck markup
ajstarks
3
990
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
640
疑似コードによるプロンプト記述、どのくらい正確に実行される?
kokuyouwind
0
380
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
590
360° Signals in Angular: Signal Forms with SignalStore & Resources @ngLondon 01/2026
manfredsteyer
PRO
0
110
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
59
42k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
How to build a perfect <img>
jonoalderson
1
4.9k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
A Tale of Four Properties
chriscoyier
162
24k
Designing for humans not robots
tammielis
254
26k
Six Lessons from altMBA
skipperchong
29
4.1k
GitHub's CSS Performance
jonrohan
1032
470k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
Between Models and Reality
mayunak
1
180
Transcript
Laravel でテストしやすいコードを書く5つのコツ 2020/11/14(土) Techpit nunulk
None
御礼 100部突破 質問や要望など大歓迎ですので どしどしお寄せください!
Agenda • 自動化されたソフトウェアテストの重要性 • テストファースト vs. テストセカンド • Laravel でテストしやすいコードを書くコツ
5 MIN 5 MIN 40 MIN
自動化されたソフトウェアテストの重要性
自動化されたソフトウェアテストの重要性 共用しているモジュールの変更に 対する変更漏れを防ぐことができ ます。 変更検知 手動テストではテストケースの漏 れや確認ミスが発生しうるが、自 動テストであれば毎回すべてのテ ストケースが実行されます。 人為的ミスの回避
パターンの多いケースを手動で何 度もやるよりはコンピュータにや らせたほうが速くて安上がりで す。 コスト削減
テストファースト vs. テストセカンド
テストセカンド テストファースト
テストセカンド テストファースト
テストセカンド テストファースト ・仕様の理解が高い場合に向いている ・実装方法が明瞭な場合に向いている ・テストが書かれないことがある ・仕様の理解が低い場合に向いている ・実装方法が不明瞭な場合に向いている ・テストが確実に書かれる
Laravel でテストしやすいコードを書くコツ
テストしやすいコードとは? ファイルの読み書きや外部サービ スとのやりとりを分離しておくと テストが書きやすくなります。 副作用が少ない テスト対象のクラスや関数が依存 しているクラスや関数が少なくす ることでテストが書きやすくなり ます。 依存関係が少ない
テストしたい対象をできるだけ小 さくすることで、テストが書きや すくなります。 関数が小さい
Laravel でテストしやすいコードを書くコツ 1/2 ファイルの読み書きや外部サービ スとのやりとりを分離しておくと テストが書きやすくなります。 副作用を分離する Dependency Injection は、引数に指
定されたクラスのインスタンスを 勝手に生成して渡してくれる仕組 みで、テストのときにクラスの差 し替えが簡単になります。 DI を使う テストしたい対象をできるだけ小 さくすることで、テストが書きや すくなります。 関数をできるだけ小さくす る
Laravel でテストしやすいコードを書くコツ 2/2 静的メソッドをモックするのは若 干面倒なので、インスタンス化し ても変わらない場合はインスタン スメソッドにしましょう。 できるだけ静的メソッ ドを使わない Eloquent
を使ったモデルの場合プ ロパティが public になりますが、 プロパティアクセスはモックがで きないので、なるべくプロパティ アクセスを減らしましょう。 できるだけプロパティ にアクセスしない