Simpletestにtrueとfalseをちゃんと確認させる
phpのユニットテストツールとして便利なSimpletestですが、困ったことにassertTrueやassertFalseといった基本的なメソッドの実装が若干雑です。
具体的には、assertTrue(1) とか assertFalse('') が通ってしまうため、本来は通らないはずのテストをパスしてしまう恐れがあります。
そこで、UnitTestCaseを継承した、以下のようなクラスを作成します。
class MyTestCase extends UnitTestCase { function assertTrue($result, $message='Expected true ') { return parent::assertTrue($result === true, $message); } function assertFalse($result, $message='Expected false ') { return parent::assertTrue($result === false, $message); } }
これで、両者共に === で比較するようになるのでbool値も正しくテストできるようになります。
普段自分で使っているテストケースは、これ以外にも表示系でいろいろとネタを仕込んでいるのですが、それはまたの機会に。