ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

PHPUnitを使って、JUnitと比較しながら、PHPのユニットテストしてみる(その1)

2005-12-06 14:03:52 | PHP

PHPUnitを使って、ユニットテストをしてみようと思います。
で、Junitと比較しやすいように目の前にあった、
「JUnitによるテストファースト開発入門」ISBN 4-7973-2572-0 という本にある、23ページと27ページにある、
SimpleCountTestの例に基づいて、やりたいと思います。

SimpleCountというのは、こういうやつだそうです(その本の23ページ引用)
商品コード"1234"を入力すると文字列"carrot"が出力される

今回は、テストファーストで、まず関数(メソッド)を書いてエラーをだすところまで

なお、このサイト(http://www.1x1.jp/php/)を全面的に参考にしています。




■■ 1.ダウンロードしてくる
http://sourceforge.net/projects/phpunit/から、PHPUnitをダウンロードする。
 ダウンロードのところをクリックしていくと、ミラーサイトを選んだりして、最終的には、とってこれる。
 tgzの形式なんだけど、保存したら、なぜか、拡張子は、gzになっていた。

 この保存したものを「解凍レンジ」で解凍すると、フォルダが出てくる。一番下のフォルダには、
   phpunit.php
   phpunit_test.php
   runtests.php
   runtests2.php
   stylesheet.css
   ChangeLog
   README
といったファイルがはいっている

■■ ロリポップでテストするために
 で、このPHPUnitは、PHP3,4用である。うちの環境は5。
 なんで、ろりぽが、PHPUnit4だった気がしたので、ろりぽにおくった。
 ろりぽのホームにこれらのファイルを送り、属性を777にした
(送ったままだと、実行しない。777にしなくてもOKだと思うけど、なんにすれば、えらーにならないか、よくわかんないので、めんどーなので777にしてる。ろりぽおじさんは、「777にしちゃだめ、セキュリティ上」、みたいなことを言ってるので、よいこのみんなは、真似しちゃだめだよ。ろりぽおじさん、ごめんなさい。テスト終わったら消しとくから)

■■ プログラムを作成する
さっきの本の23ページに相当する、テスト内容は、こんなかんじ
<?php
require_once("SimpleCount.php");	//	先に、テスト対象を宣言する
require_once("phpunit.php");

class SimpleCountTest extends TestCase {

    /**
     *  コンストラクタ
     */
    function SimpleCountTest($name) {
        $this->TestCase($name);
    }

    /**
     *  初期処理
     */
     function setUp() {
     }

    //--------- ここから、テストをかくのだ
    /**
     *  getShohinNameのテスト
     */
     function testGetShohinName() {

		//	本に書いてあるのを、PHPにしただけ
	$simple = new SimpleCount();
	$data = "1234";
        $this->assertEquals("carrot",$simple->getShohinName($data));

     }
}

//-----------------------------------------------------//
//	呪文なのだ
$suite = new TestSuite;

//	テストするものを書くのだ
$suite->addTest(new SimpleCountTest("testGetShohinName"));

//	じゅもんなのだ
$testRunner = new TestRunner;
$testRunner->run($suite);
?>

(上記中、 < > ¥ は本当は半角)
これをSimpleCountTest.phpという名前で保存する。


で、テストする側、さっきの本の27ページに相当する部分で、
はじめの状態は、こんなかんじ
<?php
class SimpleCount {

    /**
     *  ほんのとおり。にんじん??
     *
     */
    function getShohinName($name) {
    }
}
?>

(上記中、 < > ¥ は本当は半角)
はじめの状態なので、何も書いていない。なので、このまま実行すると、エラーになるはず
で、このファイル名をSimpleCount.phpとして保存した

■■ プログラムを送る
 上記のSimpleCountTest.phpとSimpleCount.phpを、さっきのろりぽのホームに送って、属性を777にした。

■■ 実行する
ブラウザから、ろりぽの自分のサイトのSimpleCountTest.phpをみると、こんな感じに見える。

(上記のイメージ中、紫色のところは、実際には、この文字が出るのではなく、自分のホームページのパスが入ります=人によってちがいます)。




で、あとは、SimpleCount.jpgをさっきの本の27ページのように、まじめに書いて、正しい結果にするだけ
だけど、今日は、時間がないので、この続きは、またこんど。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« データベースで使う「マスタ... | トップ | PHPUnitをJUnitと比較しなが... »
最新の画像もっと見る

PHP」カテゴリの最新記事