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.
とりあえず今日はここまで
んで、まぁ
書き方とかはわかったんだけど、実務レベルにどうやって適用するかが頭の中でもやついているので、そこをどうにかせんと・・・