PHPUnitでテストに使うメソッド"assertXX"のリファレンス

PHP Evo / PEAR hacks

PHPUnitの使い方(assertメソッドリファレンス)

Ver 1.0 '04/06/14
Ver 1.1 '04/07/21 リファレンスを書き直し
PHP Evo / PEAR hacks / PHPUnitの使い方(assertメソッドリファレンス)

PHPUnitでテストをするためのメソッド"assertXX"のリファレンス


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時のメッセージ

$Revision: 2 $
Last Update: $Date: 2007-02-28 23:35:40 +0900 (豌エ, 28 2譛 2007) $