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
PHPUnitでパラメタライズドテストと例外のテスト / PHPUnit +Parameter...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
juve534
November 10, 2020
Programming
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
PHPUnitでパラメタライズドテストと例外のテスト / PHPUnit +Parameterized Test
juve534
November 10, 2020
More Decks by juve534
See All by juve534
DMMプラットフォームでプルリクエストのマージ時間を250時間から50時間に減らした話 / Developers Summit 2023
juve534
3
2.9k
CleanArchitecture輪読会 - SOLID原則 - / Clean Architecture Round Reading SOLID
juve534
0
110
スクラムガイド輪読会 / changes 2020 Scrum Guide
juve534
0
130
DIについて知る / Let's study together DI.
juve534
0
80
レガシーコードに最低限の秩序をもたせる
juve534
2
1.6k
Other Decks in Programming
See All in Programming
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.4k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
390
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.5k
技術的負債解消で開発者の未来を開く- AIの力でコード刷新
kmd2kmd
0
120
フロントエンドとバックエンドで「1文字」を揃えよう
youkidearitai
PRO
0
740
1B+ /day規模のログを管理する技術
broadleaf
0
110
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
110
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
920
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.5k
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.5k
Featured
See All Featured
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.8k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
180
Technical Leadership for Architectural Decision Making
baasie
3
420
Why Our Code Smells
bkeepers
PRO
340
58k
エンジニアに許された特別な時間の終わり
watany
107
250k
What's in a price? How to price your products and services
michaelherold
247
13k
Unsuck your backbone
ammeep
672
58k
30 Presentation Tips
portentint
PRO
1
330
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
It's Worth the Effort
3n
188
29k
Faster Mobile Websites
deanohume
310
32k
The Pragmatic Product Professional
lauravandoore
37
7.3k
Transcript
PHPUnitで パラメタライズドテストと 例外のテスト juve534
» Twitter / GitHub » Juve534 » 仕事 » PHP7
+ Laravelの新規開発 » 好きなサッカーチーム » ユベントス(Juventus) 2 自己紹介
PHPUnitで パラメタライズドテストと例外の テストを行う方法 3 今日話すこと
» テストの冗長化を防ぐ » PHPUnitを便利に使う 4 期待すること
パラメタライズドテスト 5 1.
“ パラメタライズドテストとは 渡す引数が違うだけで 同じテストケースを実行するテスト 6
パラメタライズドテスト FizzBuzzで試してみる » 3の倍数は「Fizz」 » 5の倍数は「Buzz」 » 3と5の倍数は「FizzBuzz」 7
Want big impact? USE BIG IMAGE. 8
冗長… 9
パラメタライズドテスト 気になる点 » 毎回テスト対象のメソッド呼び出し » テストケース増えると長くなる » テストの目的が見えづらい 10
PHPUnitのメソッドを使う 11
パラメタライズドテスト @dataProvider » Docコメントに書く » 任意のメソッドから値を受け取れる » @dataProvider メソッド名 »
メソッドはpublic » 配列 or オブジェクトで返却する 12
使ってみる 13
Want big impact? USE BIG IMAGE. 14
パラメタライズドテスト 改善した点 » テスト対象のメソッド呼び出し1回 » テストデータがメソッド内にまとまった » テスト目的がわかりやすくなった 15
例外のテスト 16 2.
例外のテスト before » try-catchでもできる » 拾っちゃいけないException拾わない? →意図したExceptionだけ拾いたい →PHPUnitのメソッドを駆使する 17
例外のテスト @expectedException » docコメントに書く » 例外クラスを判定できる » @expectedException Exception名 18
例外のテスト 19
例外のテスト @expectedExceptionMessage » docコメントに書く » 例外のメッセージを判定できる » @expectedExceptionMessage メッセージ »
メッセージは一部でも判定できる » @expectedExceptionの記述が必要 20
例外のテスト 21
例外のテスト @expectedExceptionMessageRegExp » docコメントに書く » 例外のメッセージを正規表現で判定できる » @expectedExceptionMessageregExp メッセージ 22
例外のテスト 23
例外のテスト after » 意図したいExceptionだけ拾えた » メッセージも判定楽ちん » 紹介省いたけどcode内でもできる 24
応用編 25 3.
複数の例外をテストする 26
複数の例外をテスト dataProvider + $this->expectExceptionを使う 27
例外のテスト $this->expectException » expectedExceptionのメソッド版 » テストメソッド内で呼び出せる » 引数を動的に変更できる 28
Want big impact? USE BIG IMAGE. 29
まとめ » PHPUnitは優秀 » dataProviderとexpectedExceptionで快適なテストラ イフをしよう 30
関連資料 » PHPUnitでパラメタライズドテストをやってみる » PHPUnitで例外をテストする » コード 31
ご清聴ありがとうございました 32