muroiです。
今日はaskeetチュートリアルの15日目『単体テスト』について書きたいとおもいます。
このテストではaskeetのチュートリアルで書かれているSimpleTestというものではなく、limeというテストフレームワークを使ってテストするという仕様にsymfonyのバージョンも変わっており、そんな違いから苦戦しつつもなんとか実施する事ができました。
まず最初にlimeのセットアップと簡単な使い方を覚えるためにsymfonyで開発日記を参考にしてlimeの使い方を学習していきました。
上記のサイトでは、limeの簡単な使い方から紹介されていたので勉強する上ですごく参考になりました。
サイトを参考にしながらソースコードを作成してテストをしてみると・・・
- テストソース
<?php
require_once ("./lime/trunk/lib/lime.php");
$t = new lime_test(2,new lime_output_color);
$t->ok(true,"hello world");
$t->ok(false,"may be error");
?>
- 実行コマンド
php hellotest.php
- 実行結果
2つめのテストでは引数にfalseを渡しているのでNGがでており、これでテストする事はできました。
またlime_testオブジェクトでは、オブジェクトを生成する際引数を2つまで持たせる事が出来て一つ目がテストする数、2つ目の引数が結果の色分けを行うオブジェクトを渡す事ができます。こうする事で色分けされて結果が表示されるので判断しやすくなりいいですね!
実際にこれでlimeの使い方も勉強できたので、後はsymfonyで使って見る事にしました。
symfonyではテスト用のフォルダも用意されていたので、lime.phpも適切なディレクトリ(lib/)に配備して、テストメソッドを作成してテストを行ってみました。
テストするには以下のコマンドを実行しました。
symfony test-unit frontend normalize
これでnormalizeメソッドのテストを行う事が出来ました。
実行結果は以下のようになります。

今度の結果は成功してるので緑色です。緑だといいですね。
今回はaskeetをあまり参考にせず、limeの使い方を勉強してきました。
limeの使い方もある程度学習する事ができたので後はここまで作ってきたものにテストを実行していきたいと思います。


コメントをどうぞ