kinjouj.github.io

PHPUnitでテスト内で発生したアサーションをテストする

2013-01-07T00:00:00+00:00 PHP PHPUnit

タイトルじゃ意味がわかりづらいかなと。簡単に言えば「本当にアサーションが発生しているのかをテストする」っていう事

例えばコールバックを引数に持つクラスメソッドを実行する前提のテストを行う際に、その引数に指定されたコールバックが実行されてそこでアサーションを行なってテストする場合、そのコールバックが正常に作動していなければアサーションが発生したとは考えにくいのではと。

でPerlとかの単体テストで使われるTest::Moreとかでは実行プランっていうのが存在しているので、想定されるテスト(アサーション)が保証する回数を前提にする事が出来る訳で。でこれをPHPUnitでやるにはどうすれば良いのかって

色々見た所だとどうもそういうのをサポートされてないような気もする。だけど、PHPUnit_Framework_Assert::getCountで取得する事が可能な模様。でテストする際にあたってはテスト毎(メソッド)にカウンタが初期化される模様(resetCountとかそういうメソッドもある)