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 +Parameterized Test
Search
juve534
November 10, 2020
Programming
0
200
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.1k
CleanArchitecture輪読会 - SOLID原則 - / Clean Architecture Round Reading SOLID
juve534
0
33
スクラムガイド輪読会 / changes 2020 Scrum Guide
juve534
0
84
DIについて知る / Let's study together DI.
juve534
0
30
レガシーコードに最低限の秩序をもたせる
juve534
2
1.1k
Other Decks in Programming
See All in Programming
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
210
Elm 0.19.0 Changes
bkuhlmann
0
490
二郎系ラーメンのコールで学ぶ AST 解析
memory1994
PRO
7
1.7k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
2
190
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
650
スキーマ駆動開発による品質とスピードの両立 - 私達は何故、スキーマを書くのか
kentaroutakeda
0
170
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
170
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
130
雑に思考を整理する技術と効能
konifar
60
29k
Code Reviews
bkuhlmann
4
890
⼤規模⾔語モデルの拡張(RAG)が 終わったかも知れない件について
nearme_tech
23
15k
冗長なエラーログを削減し、スタックトレースを手に入れる / Reducing Verbose Error Logs and Obtaining Stack Traces
upamune
0
760
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
78
43k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
Imperfection Machines: The Place of Print at Facebook
scottboms
260
12k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
Building Applications with DynamoDB
mza
88
5.6k
GraphQLとの向き合い方2022年版
quramy
32
12k
A designer walks into a library…
pauljervisheath
200
23k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
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