somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【php】SimpleTest

 

今回は、phpの自動テストツール「SimpleTest」のメモです。

このツールは、Cakephpや以前のsymfonyにも使用されていたテスト用フレームワークだそうです。 symfonyは、現在limeというsymfony独自のツールを用いているらしいです。 他にはJUnitから影響を受けて作成されたphpUnitなどがあるそうです。

 

「今回の実行環境」

・windowsXP

・xampp

 

「インストール」

下記URLから1.0.1をダウンロードし展開する

http://www.simpletest.org/en/download.html

htdocs配下に sorcecodeディレクトリを作成(ソースコード格納用)

testcodeディクトリを作成(テストコード格納用)

testcodeディクトリ内に展開されたsimpltestディレクトリを格納

 

「テスト実行」

今回は試験的なSimpleTestが動くかの試験 TestTest.phpを作成する

class TestTest extends UnitTestCase {
 public function testTest() {
   assertEqual(1, 0);
 }
}

$test = new TestTest();
$test->run(new HtmlReporter());

下記URLにアクセスする

http://localhost/testcode/TestTest.php

 

「結果」

assertEqual(1, 0);から明らかに分かりますが、 レッドバーが表示されました。 加えて、いろんな表示が出てきました。

・Assigning the return value of new by reference is deprecated

⇒オブジェクトの代入を明示的に参照渡しにするようにしている

⇒php4では、代入演算子「=」オブジェクトとすると複製を代入するらしい。5では自動参照渡し。

・Declaration of %s::%s() should be compatible with that of %s::%s()

⇒継承によるオーバーライド時に、メソッドの引数の形を変えている ⇒オーバーライド時に変数を明示的に参照渡しにしていた

・Non-static method %s::%s() cannot be called statically ⇒スタティックメソッドでないものを、そのように読んでいる ⇒php4の呼び方「&メソッド名」でSimpleTestが書かれているため

エラー定数についてはマニュアル参照

http://www.1x1.jp/blog/2007/11/php_e_strict_message.html

php5で導入されたものの解説はここを参考にしました。 http://php.net/manual/ja/errorfunc.constants.php

php.iniによるエラー表示制御はここ

http://d.hatena.ne.jp/Kshi/20100310/1268211701

 

次に「レッド⇒グリーン」

assertEqual(0, 0);

無事グリーンになりました。