PHPUnitのテストコード作成と実行
PHPUnitでテストを実行するには対象のメソッドなどを呼び出すテストコードが必要です。
ここでは手でテストコードを作成してテストを実行する流れをご紹介します。
尚、記事はテストコードの手動作成についての記事です。
「skeleton-generator」を用いての自動作成については以下でご紹介しています。
PHPUnitのテストコード作成
テスト対象として利用するクラスは公式サンプルにあるコードを拝借します。
以下の様なコードです。
引数同士を足して答えを返すメソッドです。
apache2464/target/testClass.php
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php class Calculator { /** * @param unknown $a * @param unknown $b * @return number */ public function add($a, $b) { return $a + $b; } } |
これに対するテストコードは以下のように定義します。
ここではEclipseでフォルダを作成し、テストコードをひとまとめにしています。
apache2464/phpunit/CalculatorTest.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php require_once 'C:\Apache2464\htdocs\target\testClass.php'; class CalculatorTest extends PHPUnit_Framework_TestCase { public function testCalc() { $this->object = new Calculator; $this->assertEquals( 3 , $this->object->add(1, 2) ); } } |
このテスト用ソースとテストターゲットの関係はこのようになっています。
実際にはEclipse上からメニュー選択にて、
「phpunit-skeleton-generator」ライブラリを利用したテストソースの自動作成を利用します。
その手順については以下でご紹介しています。
PHPUnitのテストのコマンド実行
当サイトではMakeGoodを利用した反復テストを想定していますが、
PHPUnitはコマンドライン実行するツールですので、
上記のように配置したテストを実際にコマンドから実行してみます。
以下でインストールしたPHPUnitを利用します。
ComposerでインストールしたPHPUnitの実行にはひと手間が必要になってしまうので、
ここでは個別に.PharでインストールしたPHPUnitを用いて実行しています。
PHPUnitをインストールしたディレクトリ(例:c:\bin)で、
コマンドプロンプトを開きます。
>cd c:\bin
次にテストソースを指定してテスト実行を行います。
>phpunit C:\Apache2464\htdocs\phpunit\CalculatorTest.php
実行すると以下のようにテストが実行され結果がOKである事が表示されます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. All rights reserved. C:\Users\XXXXXXXXXX>cd c:\bin c:\bin>phpunit --version PHPUnit 5.7.27 by Sebastian Bergmann and contributors. c:\bin>phpunit C:\Apache2464\htdocs\phpunit\CalculatorTest.php PHPUnit 5.7.27 by Sebastian Bergmann and contributors. . 1 / 1 (100%) Time: 273 ms, Memory: 15.25MB OK (1 test, 1 assertion) c:\bin> |
(参考)PHPUnit マニュアル – 第3章 コマンドラインのテストランナー
最初の画像では既にMakeGoodによるテストが実行され、
結果がグリーンバー表示になっているのが画像に出ています。
テストが問題なく行われていることが分かるかと思いますが、
コマンドラインから実行すると、毎回こうしたコマンドを実行する事になり面倒です。
動作確認はコマンドライン、運用はMakeGoodと使い分けるといいでしょう。
他のテストコードの作成方法については以下の例をご紹介しています。
以下は公式ドキュメントです。
2. PHPUnit 用のテストの書き方 — PHPUnit latest Manual
当サイト内のコンテンツおよび画像を含むすべてにおいて、管理人アルゴリズンが著作権を保持しております。
当サイトでご紹介しております写真等につきましては著作権の放棄はしませんが、
ライセンスフリーでご利用いただいて構いません。
コンテンツを有益であると感じていただけましたら非常に光栄です。
ありがとうございます。
サイト内コンテンツを引用される際には、出典元として当サイト(個別記事)へのリンクをお願いいたします。
申し訳ございませんが、無断転載、複製をお断りさせて頂いております。
公開日:
最終更新日:2018/05/21