PHPUnitを試してみる

PHPユニットテストするためのPHPUnitを試してみることにする
とりあえずは自分用のメモ

インストールとかはPHPUnitのページを見ればわかるので省略
PHPUnit – The PHP Testing Framework

注意点としてはpearのupgradeをちゃんとやっておくことくらいかな

# sudo pear upgrade-all

テストを書いてみる

ドキュメントが日本語で充実しているので、そこを参考に色々書いてみる

PHPUnit – The PHP Testing Framework

んで、書いてみたの以下

<?php
class HogeTest extends PHPUnit_Framework_TestCase
{
	public $stack = array();
	/**
	 * @test
	 */
	public function Hogeをテスト(){
		$hoge = new Hoge();
		$this->assertEquals(0, $hoge->count());
		$this->assertEquals(1, $hoge->count());

		$hoge->push('hoge');
		$this->assertEquals(1, $hoge->count());
		$this->assertEquals('hoge', $hoge->pop());

		$this->assertEquals(0, $hoge->カウント());
	}

	public function testArrayPop(){

	}
}

class Hoge
{
	public $stack = array();
	public function __construct(){
		$this->stack = array();
	}
	public function push($value){
		array_push($this->stack, $value);
	}
	public function pop(){
		return array_pop($this->stack);
	}
	public function count(){
		return count($this->stack);
	}
	public function カウント(){
		return $this->count();
	}
}
  • PHPUnit_Framework_TestCaseを継承したクラスを作る
  • クラス名は〜〜〜Testにする
  • テストは testで始まるpublicのメソッドにするか、@testアノテーションをつけることでテストとして実行される
  • PHPのメソッド名に日本語が使えた!

いや、これ知らなかったんだけど・・・(常識ですか?)
PHPUnitのテストの書き方とか調べてたら普通に日本語でメソッド定義してあるのとか見て、もしかして?って思ってやってみたら動いたw

テストの実行

コマンドラインから以下を実行

# phpunit --colors HogeTest.php

実行するとテストの結果がずらずらーっと出てくる
ちなみに上のコードを実行すると以下のようになる

PHPUnit 3.7.14 by Sebastian Bergmann.

F.

Time: 0 seconds, Memory: 2.75Mb

There was 1 failure:

1) HogeTest::Hogeをテスト
Failed asserting that 0 matches expected 1.

HogeTest.php:11

FAILURES!
Tests: 2, Assertions: 2, Failures: 1.

とりあえず今日はここまで

んで、まぁ

書き方とかはわかったんだけど、実務レベルにどうやって適用するかが頭の中でもやついているので、そこをどうにかせんと・・・