1. assertメソッドとは
1.1 assertメソッドとは何か?
assertメソッドは、PHPUnitでテストを実行するメソッドです。
assertメソッドを呼び出すとメソッドの種類に応じて、リターン値やデータ型などをチェックします。
結果が想定どおりならpassとなり、違う場合はfailureとなります。構文エラーなどの言語エラーが発生した場合はerrorとなります。それぞれの結果はPHPUnitにより集計されます。結果が全てpassなら開発が正常に終了したことになり、failure,errorがあるばあいはBugがある、または実装していないということになります。
結果がfailureの場合は、テストした値や指定したメッセージが表示されます。
これにより、どこのテストが失敗したかわかります。
これを参考にしてBugFixを行います。
1.2 assertメソッドを使う
UnitTestでは、テストプログラムは下記形式に決まっています。
testFailureのようにtestではじまるメソッドがUnitTestでテストとして実行されます。
<?php
require_once 'PHPUnit.php';
class failureTest extends PHPUnit_TestCase {
function failureTest($name)
{
$this->PHPUnit_TestCase($name);
}
function testFailure()
{
$this->fail("no implementation");
}
}
?>
このようにtestXXXメソッド内に$this->failのようにassertメソッドを記述します。
PHPUnitはこれらのassertメソッドを見てテストの成功・失敗を集計します。
2. assertメソッド リファレンス
以下に各assertメソッドと、その説明を書きます。
テストを作成するときの参考にしてください。
- void fail(string $message)
- 強制的にfail。
主にメソッドを最初に作成したときに使用。$message fail時のメッセージ。 - void assertEquals(mixed $expected, mixed $actual, [string $message], [double $delta])
- メソッドの結果($actual)が指定した値($expected)と等しければpass($deltaが指定されているときは差が$delta以内)、それ以外はfail
$expected 返されるべき値 $actual チェックするリターン値 $message fail時のメッセージ $delta 数値を比較するときに許容する誤差の値 - void assertRegExp( string $expected, string $actual, [string $message] )
- チェックする値($actual)が正規表現($expected)にマッチしていたときはpass、それ以外はfail
$expected 文字列をチェックする正規表現 $actual チェックするリターン値 $message fail時のメッセージ - void assertNull( object $object, [string $message] )
- オブジェクト($object)がnullのときはpass、それ以外はfail
$object チェックするオブジェクト $message fail時のメッセージ。 - void assertNotNull( object $object, [string $message] )
- オブジェクト($object)がnullではないときはpass、それ以外はfail
$object チェックするオブジェクト $message fail時のメッセージ。 - void assertTrue( boolean $condition, [string $message] )
- 結果($condition)がtrueのときはpass、それ以外はfail
$condition チェックする値 $message fail時のメッセージ - void assertFalse( boolean $condition, [string $message] )
- 結果($condition)がfalseのときはpass、それ以外はfail
$condition チェックする値 $message fail時のメッセージ - void assertType( string $expected, mixed $actual, [optional $message] )
- 値($actual)の型が指定した型($expected)の場合はpasss, それ以外はfail
$expected 値の型名 $actual チェックする値 $message fail時のメッセージ