edo1z blog

プログラミングなどに関するブログです

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