Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Local php-100828 2

1,557 views

Published on

第11回 LOCAL PHP部勉強会での発表資料です

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Local php-100828 2

  1. 1. PHP で かんたんテストススメ @iakio 第 11 回  LOCAL PHP 部勉強会 2010/08/28
  2. 2. テストって?
  3. 3. SimpleTest PHPUnit
  4. 4. SimpleTest <?php require_once('simpletest/autorun.php'); require_once('../fizzbuzz.php'); class TestFizzbuzz extends UnitTestCase { function testFizzBuzzOne() { $this->assertEqual(fizzbuzz(1), 1); } } ?>
  5. 5. いうほど Simple でもない
  6. 6. Test::Simple Test::More
  7. 7. ok(fizzbuzz(1) ==1); is(fizzbuzz(1), 1);
  8. 8. 但し Perl のモジュール
  9. 9. いくつか実装があるようです ● http://testanything.org/wiki/index.php/TAP_Prod ucers ● Apache::Test ● test-more-php
  10. 10. search.cpan.org Test.php
  11. 11. #!/usr/bin/php <?php require_once('.../tlib/Test.php'); require_once('../fizzbuzz.php'); plan('no_plan'); is (fizzbuzz(1), 1); is (fizzbuzz(2), 2); is (fizzbuzz(3), "fizz");
  12. 12. Tips
  13. 13. YAML を使う <?php $data = array( 'id' => 1, 'name' => 'hoge', 'description' => '....' ); $data = Y(<<<EOD id : 1 name : hoge description : ... EOD );
  14. 14. object へのキャスト <?php is($data['foo'], 'foo'); is($data['bar'], 'bar'); $o = (object) $data; is($o->foo, 'foo'); is($o->bar, 'bar');
  15. 15. 脱線 ( 本編 ?)
  16. 16. Test.php-0.13 $ cat t/0-compile.t #!/usr/bin/env php <?php require 'Test.php'; plan(1); ok(0 == 0); ?> Test.php-0.13 $ make test prove -r t t/0-compile.t ............ ok t/1-plan-1.t ............. ok
  17. 17. 誰かが PHP を起動している
  18. 18. #/usr/bin/php <?php phpinfo();?>
  19. 19. $ perl phpinfo.php phpinfo() PHP Version => 5.1.6 System => Linux localhost.localdomain ...
  20. 20. Shebang( シバン、シェバン ) chmod +x されたスクリプトを 実行したときに shell が使うもの
  21. 21. でも Perl と Ruby は Shebang をみます
  22. 22. php でも shebang を書いておけば prove が使えます

×