INFRA

PHPUnitの勉強

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