[[PHP]]
*PHPUnitインストール [#o774a03d]
-PEAR版v1.2.0beta1を手動インストールした
*PHPUnitを使う [#c8728377]
**テスト用のスケルトン [#a83e6aad]
<?php
require_once("PHPUnit.php"); // PEAR版PHPUnit
require_once("Sample.php"); // テスト対象のSampleクラス
// テストクラス
class SampleTest extends PHPUnit_TestCase
{
var $sample_;
/* コンストラクタ */
function SampleTest($name) {
$this->PHPUnit_TestCase($name);
}
/* 初期化(テスト処理前に実行される) */
function setUp() {
$this->sample_ = new Sample();
}
/* テスト終了処理 */
function tearDown() {
}
/* テスト実装部分(関数名がtestで始まるものがテスト対象) */
function testNo1() {
// sample_->getData("")の結果が、0であることを確認する
$this->assertEquals(0, $this->sample_->getData("") );
}
}
$ts = new PHPUnit_TestSuite("SampleTest");
$tr = PHPUnit::run($ts);
echo '<pre>';
echo preg_replace("/( failed:.*)/", "<font color=\"red\"><b>$1</b></font>", $tr->toString());
echo '</pre>';
?>
**テストの書き方 [#c88b7219]
-Assert.phpのPHPUnit_Assertクラスがテスト用のメソッドを定義しているので、使い方を確認。
assertEquals($expected, $actual, $message = '', $delta = 0)
assertNotNull($object, $message = '')
assertNull($object, $message = '')
assertTrue($condition, $message = '')
assertFalse($condition, $message = '')
assertRegExp($pattern, $string, $message = '')
assertNotRegExp($pattern, $string, $message = '')
assertType($expected, $actual, $message = '')
assertNotContains($needle, $haystack, $message='')
--$haystackと$needleが文字列の場合、$haystackに$needleが含まれていないか?含まれないならエラー
--$haystack配列に$needle(オブジェクト以外)が含まれていないか?
*参照 [#qcb29ca0]
-[[Do You PHP? - 最強のユニットテスト自動化ツール:http://www.pat.hi-ho.ne.jp/dimension/]]