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 件のコメント:
コメントを投稿