前に書いた
PHPUnitのPEAR版でユニットテストをしてみる(その1)
のつづきです。
今度は、以前、Junitの本に書いてあったソースを、sourceforge版のPHPUnit用に書き換えて実験してみましたが(ここ)
そのソースをPear版のPHPUnitに書き換えると同時に、コメントいただいた内容を参考に、GUIを使ってみたいと思います。
■■ 前回までのお話
●PEAR版をダウンロードしてきました
ここ http://pear.php.net/package/PHPUnit
●そこの、PHPUnit.phpのソースの中にあるサンプルを切り出して、動かしてみました。
■■ まず、テスト用のソースを用意する
テスト用のソースを用意します。以前のsourceforge版用のPHPUnitのPEAR版でユニットテストをしてみる(その1)のソースを基本的に使います。
(このソースは、そこに書かれている、Junitの本のものをPHP用に直したものです)
まず、ソースは、テスト対象(SimpleCount.php)になるものと、テストを実行する用(SimpleCountTest.php)の、2種類が必要です。
テスト対象のソースは、(当然ながら)前にsourceforge版で示したものと同じです
(sourceforge版かPEAR版かは、あくまでも、テストをする人の好みの話で、元のソースは、テストツールによって書き換えないといけないようでは、困るから、当然、同じものが使えないと困る)。
<?php class SimpleCount { var $CARROT_CODE = "1234"; var $CARROT_NAME = "carrot"; // 27ページと違うけど、29ページに、こう修正とある /** * 商品コードをいれると、文字列を返す * */ function getShohinName($name) { if ( $name == $this->CARROT_CODE ) { return $this->CARROT_NAME; } return NULL; } } ?> |
(上記の < > ¥は、実際には、半角)
これを、SimpleCount.phpとして、保存します。
で、肝心のテストするプログラム、SimpleCountTest.phpは、こんなかんじ
<?php require_once("SimpleCount.php"); // 先に、テスト対象を宣言する require_once("PHPUnit.php"); require_once("PHPUnit/GUI/HTML.php"); class SimpleCountTest extends PHPUnit_TestCase { /** * コンストラクタ */ function SimpleCountTest($name) { $this->PHPUnit_TestCase($name); } /** * 初期処理 */ function setUp() { } //--------- ここから、テストをかくのだ /** * getShohinNameのテスト */ function testGetShohinName() { // 本に書いてあるのを、PHPにしただけ $simple = new SimpleCount(); $data = "1234"; $this->assertEquals("carrot",$simple->getShohinName($data)); } } //------------------------------------------------------// // ここが、以前とちがうところ // $suite = new PHPUnit_TestSuite("SimpleCountTest"); $result = new PHPUnit_GUI_HTML($suite); $result->show(); ?> |
(上記の < > ¥は、実際には、半角)
赤のところが、PEAR用に書き換えたところ
青のところが、PEAR用でかつ、GUI用に書き換えたところです。
で、これを、SimpleCountTest.phpという名前で保存して、自分のホームのところにおきます。
■■ 実際にブラウザで動かしてみる
自分のホームページのURLは、日本全国(いや、世界的に)http://127.0.0.1/なので
http://127.0.0.1/SimpleCountTest.php をブラウザで見てみると、
こんなかんじに出てきます。
そこで、SimpleCountTest NOT EXECUTEDの前のチェックボックスをクリックして、チェックを入れてから、run testsボタンをクリックすると、こんな感じになって、
テストOKの画面になります。
ちなみに、(手順が逆ですが)、SimpleCountTest.phpの
$this->assertEquals("carrot",$simple->getShohinName($data));
の"carrot"を、"にんじん"に変えてわざと間違えると、
といった感じになります。
これで、PHPUnitのお話は、おしまい(のはず)