PHPUnitでユニットテスト (1/3)これ見ながら勉強。
・テストはテストケースと呼ばれるクラスで、メソッドの中にアサーションという比較処理を書く。 ・PHPUnit_Framework_TestCaseというクラスを継承してテストケースクラスをつくる。 ・テストするクラスのクラス名の最後にTestとつけるのがテストケースクラス名のルール。 ・ファイル名もテストケースクラス名と同じである必要がある。 ・テストメソッド名はtestで始めるのがルール。 ・テスト対象のクラスをテストケース内でインスタンス化し、実際にメソッドをコールすることによってその結果を精査するのが一般的。 ・アプリケーションフレームワークが行う初期化処理や、データベース接続などの準備処理を、テストの前に実行しておく必要がある。 ・準備と後始末の仕組みについてもPHPUnit側でテンプレートメソッドとして準備されている。 ・テストケース開始時に、setUpBeforeClass()メソッドを呼ぶ。 ・テストメソッド実行前に、setUp()メソッドを呼ぶ。 ・テストメソッド実行後に、tearDown()メソッドを呼ぶ。 ・テストケース終了時に、tearDownAfterClass()メソッドを呼ぶ。
お試しコード
テストケース
<?php require_once 'Sample.php'; class SampleTest extends PHPUnit_Framework_TestCase{ public function setUp(){ $this->sample = new Sample; } public function testGetValue(){ $this->sample->set_value(20); $this->assertEquals(40, $this->sample->get_value()); } }
テスト対象
<?php class Sample{ protected $value; public function get_value(){ return $this->value; throw new RuntimeException('Not yet implemented.'); } public function set_value($value){ $this->value = $value * 2; } }
そして、phpunit sampletest.phpとやる。
結果、
PHPUnit 3.6.12 by Sebastian Bergmann. . Time: 0 seconds, Memory: 2.50Mb OK (1 test, 1 assertion)
あとはここを見ながら勉強する。 PHPUnit Manual