Slide 1

Slide 1 text

PHPUnitで パラメタライズドテストと 例外のテスト juve534

Slide 2

Slide 2 text

» Twitter / GitHub » Juve534 » 仕事 » PHP7 + Laravelの新規開発 » 好きなサッカーチーム » ユベントス(Juventus) 2 自己紹介

Slide 3

Slide 3 text

PHPUnitで パラメタライズドテストと例外の テストを行う方法 3 今日話すこと

Slide 4

Slide 4 text

» テストの冗長化を防ぐ » PHPUnitを便利に使う 4 期待すること

Slide 5

Slide 5 text

パラメタライズドテスト 5 1.

Slide 6

Slide 6 text

“ パラメタライズドテストとは 渡す引数が違うだけで 同じテストケースを実行するテスト 6

Slide 7

Slide 7 text

パラメタライズドテスト FizzBuzzで試してみる » 3の倍数は「Fizz」 » 5の倍数は「Buzz」 » 3と5の倍数は「FizzBuzz」 7

Slide 8

Slide 8 text

Want big impact? USE BIG IMAGE. 8

Slide 9

Slide 9 text

冗長… 9

Slide 10

Slide 10 text

パラメタライズドテスト 気になる点 » 毎回テスト対象のメソッド呼び出し » テストケース増えると長くなる » テストの目的が見えづらい 10

Slide 11

Slide 11 text

PHPUnitのメソッドを使う 11

Slide 12

Slide 12 text

パラメタライズドテスト @dataProvider » Docコメントに書く » 任意のメソッドから値を受け取れる » @dataProvider メソッド名 » メソッドはpublic » 配列 or オブジェクトで返却する 12

Slide 13

Slide 13 text

使ってみる 13

Slide 14

Slide 14 text

Want big impact? USE BIG IMAGE. 14

Slide 15

Slide 15 text

パラメタライズドテスト 改善した点 » テスト対象のメソッド呼び出し1回 » テストデータがメソッド内にまとまった » テスト目的がわかりやすくなった 15

Slide 16

Slide 16 text

例外のテスト 16 2.

Slide 17

Slide 17 text

例外のテスト before » try-catchでもできる » 拾っちゃいけないException拾わない? →意図したExceptionだけ拾いたい →PHPUnitのメソッドを駆使する 17

Slide 18

Slide 18 text

例外のテスト @expectedException » docコメントに書く » 例外クラスを判定できる » @expectedException Exception名 18

Slide 19

Slide 19 text

例外のテスト 19

Slide 20

Slide 20 text

例外のテスト @expectedExceptionMessage » docコメントに書く » 例外のメッセージを判定できる » @expectedExceptionMessage メッセージ » メッセージは一部でも判定できる » @expectedExceptionの記述が必要 20

Slide 21

Slide 21 text

例外のテスト 21

Slide 22

Slide 22 text

例外のテスト @expectedExceptionMessageRegExp » docコメントに書く » 例外のメッセージを正規表現で判定できる » @expectedExceptionMessageregExp メッセージ 22

Slide 23

Slide 23 text

例外のテスト 23

Slide 24

Slide 24 text

例外のテスト after » 意図したいExceptionだけ拾えた » メッセージも判定楽ちん » 紹介省いたけどcode内でもできる 24

Slide 25

Slide 25 text

応用編 25 3.

Slide 26

Slide 26 text

複数の例外をテストする 26

Slide 27

Slide 27 text

複数の例外をテスト dataProvider + $this->expectExceptionを使う 27

Slide 28

Slide 28 text

例外のテスト $this->expectException » expectedExceptionのメソッド版 » テストメソッド内で呼び出せる » 引数を動的に変更できる 28

Slide 29

Slide 29 text

Want big impact? USE BIG IMAGE. 29

Slide 30

Slide 30 text

まとめ » PHPUnitは優秀 » dataProviderとexpectedExceptionで快適なテストラ イフをしよう 30

Slide 31

Slide 31 text

関連資料 » PHPUnitでパラメタライズドテストをやってみる » PHPUnitで例外をテストする » コード 31

Slide 32

Slide 32 text

ご清聴ありがとうございました 32