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
juve534
November 10, 2020
Programming
0
230
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.3k
CleanArchitecture輪読会 - SOLID原則 - / Clean Architecture Round Reading SOLID
juve534
0
52
スクラムガイド輪読会 / changes 2020 Scrum Guide
juve534
0
92
DIについて知る / Let's study together DI.
juve534
0
48
レガシーコードに最低限の秩序をもたせる
juve534
2
1.3k
Other Decks in Programming
See All in Programming
リリース8年目のサービスの1800個のERBファイルをViewComponentに移行した方法とその結果
katty0324
5
3.6k
推し活としてのrails new/oshikatsu_ha_iizo
sakahukamaki
3
1.7k
Kotlin2でdataクラスの copyメソッドを禁止する/Data class copy function to have the same visibility as constructor
eichisanden
1
130
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
340
GCCのプラグインを作る / I Made a GCC Plugin
shouth
1
150
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
550
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
23k
[PyCon Korea 2024 Keynote] 커뮤니티와 파이썬, 그리고 우리
beomi
0
110
Sidekiqで実現する 長時間非同期処理の中断と再開 / Pausing and Resuming Long-Running Asynchronous Jobs with Sidekiq
hypermkt
6
2.7k
役立つログに取り組もう
irof
26
8.6k
Importmapを使ったJavaScriptの 読み込みとブラウザアドオンの影響
swamp09
4
1.2k
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.1k
Featured
See All Featured
Building Your Own Lightsaber
phodgson
102
6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
364
22k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
4 Signs Your Business is Dying
shpigford
180
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
363
19k
Intergalactic Javascript Robots from Outer Space
tanoku
268
27k
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
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