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
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
juve534
November 10, 2020
Programming
0
310
PHPUnitでパラメタライズドテストと例外のテスト / PHPUnit +Parameterized Test
juve534
November 10, 2020
Tweet
Share
More Decks by juve534
See All by juve534
DMMプラットフォームでプルリクエストのマージ時間を250時間から50時間に減らした話 / Developers Summit 2023
juve534
3
2.8k
CleanArchitecture輪読会 - SOLID原則 - / Clean Architecture Round Reading SOLID
juve534
0
100
スクラムガイド輪読会 / changes 2020 Scrum Guide
juve534
0
130
DIについて知る / Let's study together DI.
juve534
0
72
レガシーコードに最低限の秩序をもたせる
juve534
2
1.5k
Other Decks in Programming
See All in Programming
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
220
株式会社 Sun terras カンパニーデック
sunterras
0
1.9k
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
460
クライアントワークでSREをするということ。あるいは事業会社におけるSREと同じこと・違うこと
nnaka2992
1
290
CSC307 Lecture 13
javiergs
PRO
0
310
encoding/json/v2のUnmarshalはこう変わった:内部実装で見る設計改善
kurakura0916
0
210
PostgreSQL を使った快適な go test 環境を求めて
otakakot
0
390
Geminiの機能を調べ尽くしてみた
naruyoshimi
0
190
2026/02/04 AIキャラクター人格の実装論 口 調の模倣から、コンテキスト制御による 『思想』と『行動』の創発へ
sr2mg4
0
670
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
420
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
530
Featured
See All Featured
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
200
For a Future-Friendly Web
brad_frost
183
10k
Agile that works and the tools we love
rasmusluckow
331
21k
We Have a Design System, Now What?
morganepeng
55
8k
Code Reviewing Like a Champion
maltzj
528
40k
Navigating Team Friction
lara
192
16k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
230
Building AI with AI
inesmontani
PRO
1
760
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.6k
[SF Ruby Conf 2025] Rails X
palkan
2
800
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