PHPUnitでテスト

まずはPHPUnitのインストールから。PEARは入ってるので、

pear config-set auto_discover 1
sudo pear install pear.phpunit.de/PHPUnit

と入力する。
関係ないけどComposerってまだ使ったことないんだよな。便利なのかな。
インストールが終わったら入ったか見てみる。

phpunit --version
PHPUnit 3.7.8 by Sebastian Bergmann.

おっけい。
テスト書いてみる。

<?php

require_once 'PHPUnit/Autoload.php';

class Unagi extends PHPUnit_Framework_TestCase
{
  public function testlistElement()
  {
    $stack = array();
    $this->assertEquals(0,count($stack));
    array_push($stack,'foo');
    $this->assertEquals('foo',$stack[count($stack)-1]);
  }

  public function testclassName()
  {
    $classname = get_class($this);
    $this->assertSame('Unagi',$classname);
  }
}

テストの書き方にはまったく書いてないけどPHPUnit/Autoload.phpを読み込まないとエラーがでるよ。
ここに書いてあった。当然といえば当然だけど素直な人はハマるよ。
test.phpとして保存。テストが書けたから動かす。

phpunit test.php

テストが通れば以下のように表示される。

PHPUnit 3.7.8 by Sebastian Bergmann.

..

Time: 0 seconds, Memory: 2.50Mb

OK (2 tests, 3 assertions)

メソッド名の最初に"test"を付けないとテスト対象にならない。
テストを書いた開発の流れはここがわかりやすい。