やかん部@FLATz

[symfony][memo][lime]テスト用メソッド

このエントリをdel.icio.usに追加このエントリをはてなブックマークに追加 |2008年04月21日(月)10:30|taniguchi

谷口です。


symfony ver1.0 later ではテストツールとして lime というツールが同梱されています。
今回はlimeでテストコードを書く際の判定用メソッドを紹介したいと思います。
また、簡単に単体テストの手順も記します。


使い方


1.sf_root_dir/test/unit/mytestTest.phpを作ります。


2.1.で作成したファイルにテスト用の環境を定義を記述します。


 
define('SF_APP', 'myapp');
define('SF_ENVIRONMENT', 'test');
define('SF_DEBUG', true);


3.1.で作成したファイルで単体テストのbootstrapを読み込みます。


 
require_once(sf_root_dir/test/bootstrap/unit.php');


4.テストモジュールのオブジェクトを生成します。


 
$test = new lime_test(TEST_NUM, new lime_output_color());


5.テストコードを書いていきます。


6.テストコードを書き終えたら、symfonyコマンドでテストを実行します。


> sf_root_dir/symfony test-unit mytest

テストコードで判定に用いるメソッド


 
lime_test::ok($condition, $message)
//$condition === true ならば true そうでなければ false

lime_test::is($value1, $value2, $message)
//$value1 === $value2 ならば true そうでなければ false

lime_test::isnt($value1, $value2, $message)
//$value1 !== $value2 ならば true そうでなければ false

lime_test::like($value, $regex, $message)
//$valueが$regexで表される正規表現に
//マッチすれば true そうでなければ false
//正規表現の形式は preg_match で使用する形式です。

lime_test::unlike($value, $regex, $message)
//$valueが$regexで表される正規表現に
//マッチしなければ true そうでなければ false
//正規表現の形式は preg_match で使用する形式です。

lime_test::cmp_ok($value1, $operator, $value2, $message)
//$value1と$value2を$operatorで比較し、
//その結果が true ならば true そうでなければ false

lime_test::can_ok($object, $methods, $message)
//$object に $methods(文字列)があれば true そうでなければ false

lime_test::isa_ok($var, $class, $message)
//$var が $class(文字列)のオブジェクトならば true そうでなければ false

lime_test::is_deeply($array_value1, $array_value2, $message)
//$array_value1と$array_value2を配列要素全体を比較し、
//すべて一致すれば true そうでなければ false


おわりに


limeはsymfonyプロジェクトの開発者が独自に作成したツールとのことです。
単体テストだとDBアクセスするのがちょっと面倒ですが、テストツールとしては便利です。(参考サイト3参照)


参考サイト:


  1. symfonyで開発日記 : 新しく採用されたテスティングフレームワークlimeの紹介 – lime without symfony part 1
  2. uthorofotus iruc symfony:テストフレームワークLimeを使った単体テスト
  3. symfony – 単体テストで propel を使う方法

この記事に関するお問い合わせはこちら


関連記事


Trackback URL


このページの先頭へ