2010年10月3日日曜日

Kohanaでのunittest

3系のドキュメントにunittestがないので記録


PHPUnitベースのUnitTest環境構築用モジュールが提供されている。

http://github.com/kohana/unittest

こちらのinstallation参照。

拾ってきたファイルを

modules/unittestとして解凍するだけ

もし入れてなければPHPUnitをPearで入れる。

http://www.phpunit.de/manual/current/en/installation.html

pear channel-discover pear.phpunit.de

pear channel-discover pear.symfony-project.com

pear install phpunit/PHPUnit 
GithubのほうのKohana::unittestのinstallationに従い、 bootstrapのソースを改変すると http://[yourdomain]/unittest/でTOP画面が見える mod_rewriteによるルーティングをカスタマイズしている場合は、 RewriteCond %{REQUEST_URI} ^/unittest RewriteRule ^(.*) index.php/$1 [PT] と、.htaccessにてunittestだけ標準ルーティングに変更 
実際のテストクラスは application/tests/hoge.php というように、testsディレクトリ下にファイルを置いていく TESTサンプルは以下
<?php
/**
* @group somegroup.morespecific.annoyingstuff
* @author shimazu
*
*/
Class ExampleTest extends Kohana_Unittest_TestCase
{

function setUp(){
parent::setUp();
}

function tearDown(){
parent::tearDown();
}

function providerStrLen()
{
return array(
array('One set of testcase data', 24),
array('This is a different one', 23),
);
}

/**
* @dataProvider providerStrLen
*/
function testStrLen($string, $length)
{
$this->assertSame(
$length,
strlen($string)
);
}

/**
* @dataProvider providerStrLen
*/
function testError($string, $length){
$this->assertSame(
$length,
strlen($string) + 1
);

}
}



 javadoc形式でのアノテーションにてグループ指定などが可能。

データプロバイダなんておしゃれなものも同様に指定可能

実行結果は以下



 



0 件のコメント:

コメントを投稿