テストについて無知の私ですが、先日PHPUnitがテーマの勉強会で学んだことをまとめます。
※この記事は、初学者やテストコードについて知りたい初心者レベルの方が対象です。
テストを書くことに着手ができていないけれど
- プログラムが期待通りに動いているか
- 負荷をかけた時は正常に動くのか
確認するためにテストは必要です。
Unitテスト
- クラスや関数などの単位で動作を確認する単体テスト
- 画面遷移での動作確認が不要
PHPUnit
PHPプログラムとして作成可能なユニットテスト
テストの書き方
static setUpBeforeClass() | 一つ目のテストメソッドが呼ばれる前に処理を行う |
static tearDownAfterClass() | 最後のテストメソッドが呼ばれた後に処理を行う |
setUp() | 各テストメソッドがコールされる前に処理を行う |
tearDown() | 各テストメソッドがコールされた後に処理を行う |
アサーション
値を比較、検査して想定通りの値になっているかを確認するためのメソッド。テストコードを記述する上で最も重要。
テストコードはこのアサーションメソッドを各テストメソッド内に記述していきテスト対象のクラスや共通処理が期待通りの動作になっているかを確認するイメージ。
assertメソッドは数が多いので必要に応じてphpunitのマニュアルを確認しましょう。
自動テストのしやすいプログラム構成
クラスやメソッドの構成を考える時は予め自動テストのしやすさを考えておいた方がいい。
DBやHTTPに依存するメソッドと依存しないメソッドをなるべく分けて作っておくことで、少ない労力で大きなテスト効果を得ることができる。
まとめ
色々書きましたが、まずはテストを書いてみないことには何も始まりません!かくぞ!と気持ちを新たに頑張ります。
参考サイト:PHPUnitテストコードの書き方