Upload
akio-ishida
View
1.182
Download
0
Embed Size (px)
DESCRIPTION
第11回 LOCAL PHP部勉強会での発表資料です
Citation preview
PHPで
かんたんテストススメ
@iakio第 11回 LOCAL PHP部勉強会
2010/08/28
テストって?
SimpleTest
PHPUnit
SimpleTest
<?phprequire_once('simpletest/autorun.php');require_once('../fizzbuzz.php');
class TestFizzbuzz extends UnitTestCase { function testFizzBuzzOne() { $this->assertEqual(fizzbuzz(1), 1); }}?>
いうほど
Simple
でもない
Test::Simple
Test::More
ok(fizzbuzz(1) ==1);
is(fizzbuzz(1), 1);
但し Perlのモジュール
いくつか実装があるようです
● http://testanything.org/wiki/index.php/TAP_Producers
● Apache::Test● test-more-php
search.cpan.org
Test.php
#!/usr/bin/php<?phprequire_once('.../tlib/Test.php');require_once('../fizzbuzz.php');plan('no_plan');
is (fizzbuzz(1), 1);is (fizzbuzz(2), 2);is (fizzbuzz(3), "fizz");
Tips
YAML を使う
<?php$data = array( 'id' => 1, 'name' => 'hoge', 'description' => '....');
$data = Y(<<<EODid : 1name : hogedescription : ...EOD);
objectへのキャスト
<?phpis($data['foo'], 'foo');is($data['bar'], 'bar');
$o = (object) $data;is($o->foo, 'foo');is($o->bar, 'bar');
脱線
(本編 ?)
Test.php-0.13 $ cat t/0-compile.t#!/usr/bin/env php<?phprequire 'Test.php';
plan(1);
ok(0 == 0);?>Test.php-0.13 $ make testprove -r tt/0-compile.t ............ okt/1-plan-1.t ............. ok
誰かが PHP を起動している
#/usr/bin/php
<?php phpinfo();?>
$ perl phpinfo.php
phpinfo()
PHP Version => 5.1.6
System => Linux localhost.localdomain
...
Shebang(シバン、シェバン )
chmod +x されたスクリプトを
実行したときに shellが使うもの
でも Perl とRubyは
Shebang をみます
phpでも shebang を書いておけば
proveが使えます