早速PHPUnit3を使ってみた。
$ vi ArrayTest.php
<?php
require_once 'PHPUnit/Framework.php';
class ArrayTest extends PHPUnit_Framework_TestCase
{
public function testNewArrayIsEmpty()
{
// 配列を作成します。
$arr= array();
// 配列のサイズは 0 です。
$this->assertEquals(0, count($arr));
}
/**
* メソッド名がtestで始まっていないが,「@test」
* アノテーションを使用していることに注意
*
* @test
*/
public function arrayContainsAnElementTest()
{
// 配列を作成します。
$arr= array();
// 配列にひとつの要素を追加します。
$arr[] = 'hoge';
// 配列のサイズは 1 です。
$this->assertEquals(1, count($arr));
}
}
んで、保存してテストしてみる。
$ phpunit ArrayTest
PHP Notice: Please no longer include "PHPUnit/Framework.php". in /usr/share/pear/PHPUnit/Framework.php on line 50
PHPUnit 3.5.13 by Sebastian Bergmann.
..
Time: 1 second, Memory: 3.25Mb
OK (2 tests, 2 assertions)
テスト自体に問題はなさそうだけど、PHP Noticeが出てる…。
なんでだろうと思って調べてみたら、Framework.phpからAutoload.phpに変ったらしい。
「Framework.php」をrequireしても動くが、上記のようにNoticeが出る。
Noticeが出てるのもいやなので、「require_once 'PHPUnit/Framework.php';」→「require_once 'PHPUnit/Autoload.php';」に書き換えてやる。
$ vi ArrayTest.php
<?php
require_once 'PHPUnit/Framework.php';
↓
require_once 'PHPUnit/Autoload.php';
class ArrayTest extends PHPUnit_Framework_TestCase
{
public function testNewArrayIsEmpty()
{
// 配列を作成します。
$arr= array();
// 配列のサイズは 0 です。
$this->assertEquals(0, count($arr));
}
/**
* メソッド名がtestで始まっていないが,「@test」
* アノテーションを使用していることに注意
*
* @test
*/
public function arrayContainsAnElementTest()
{
// 配列を作成します。
$arr= array();
// 配列にひとつの要素を追加します。
$arr[] = 'hoge';
// 配列のサイズは 1 です。
$this->assertEquals(1, count($arr));
}
}
$ phpunit ArrayTest
PHPUnit 3.5.13 by Sebastian Bergmann.
..
Time: 1 second, Memory: 3.25Mb
OK (2 tests, 2 assertions)
するとNoticeが出なくなる。
これで気持ちよく使えそうだ。