カテゴリー別アーカイブ: PHPUnit

PHPUnit

PHPUnitを利用したPHPのユニットテストについて簡単にまとめておきます.

1. PHPUnitのインストール

$ wget https://phar.phpunit.de/phpunit.phar
$ chmod 755 phpunit.phar

これで ./phpunit.pharとして実行可能になりますが, PATHがとおっている場所に置いておいたほうがグローバルに利用可能なので, 以下のように移動します.

$ (sudo) mv phpunit.phar /usr/local/bin/phpunit
$ phpunit --version
PHPUnit 4.8.6 by Sebastian Bergmann and contributors.

以上のようにバージョンが表示されればインストールは完了です.

2. ユニットテストコード

以下のPHPのクラスのメソッドをテストするとします.

<?php 

final class Calculator {

    private function __construct() {
    }

    public static function add($a, $b) {
        return $a + $b;
    }

    public static function sub($a, $b) {
        return $a - $b;
    }
}

テスト用のクラスはPHPUnit_Framework_TestCaseを継承させ, 慣例として「テスト対象のクラス名 + Test」の命名にします.

また, テストスイート (テストメソッド) には, testXXXのように先頭にtestを付加する必要があります (そうでない場合は, @testアノテーションを記述する必要があります).

<?php

require_once('Calculator.php');

class CalculatorTest extends PHPUnit_Framework_TestCase {
     public function testAdd() {
         $expected = 3;
         $actual   = Calculator::add(1, 2);
         $this->assertSame($expected, $actual);
    }

    public function testSub() {
        $expected = 1;
        $actual   = Calculator::sub(2, 1);

        $this->assertSame($expected, $actual);
    }
}

以下のようにしてテストを実行します.

$ phpunit CalculatorTest.php
PHPUnit 4.8.6 by Sebastian Bergmann and contributors.

..

Time: 137 ms, Memory: 13.25Mb

OK (2 tests, 2 assertions)

アサーションメソッドやアノテーションに関してはこちらが参考になるかと思います.