逆引きrhaco(?)15: ユニットテストを作りたい

その前にdoctestの解説をしろという話がありますが、今ちょうどやってるので、書いておきます。

ユニットテストをする場合は
1.まずユニットテスト用のフォルダを作ります。rhaco本体にならって_testappとします。
2.rhaco本体の_testapp下のindex.phpとsetup.php、__init__.phpをテスト用フォルダにコピーします。
3.rhaco本体にならって_testapp/setup/testsフォルダを作成します。
4.rhaco本体の_testapp/setup/testsフォルダから作成したtestsフォルダにunittest.phpをコピーします。

以上で最小構成が出来ました。たぶんこんな感じです。

_testapp
  index.php
  setup.php
  __init__.php
  setup
    tests
      unittest.php  

この構成のsetup.phpにアクセスするとrhacoのセットアップ画面が表示されます。
適当に設定して(ログをdeep_debugにすると吉)設定ボタンを押せば設定は完了です。

testと書いてあるリンクを押して下さい。

何も表示されませんが、とりあえずこれで動きました。
次にテストを書いてみます。セットアップの後はこんな感じになってるはずです。

_testapp
  index.php
  setup.php
  __init__.php
  setup
    tests
      unittest.php
  library
  resources
  work (logやキャッシュ設定をしてれば)

rhacoのテストはdoctestがベースなため、テストの呼び出し元を作る必要があります。ここではlibraryの下にtest.phpを作ってみます。

test.php(ファイル名とクラス名は一致させる必要があります)

<?php
  class test {
    function test(){
    }
    function testMethod(){
      /*** unit('sampleTest'); */
    }
  }
?>

テスト用ファイルをtests下に作ります。

sampleTest.php

<?php
  class sampleTest extends UnitTest {
    successTest(){
      $this->assertEqual(1,1);
    }
    failTest(){
      $this->assertEqual(1,0);
    }
  }
?>

これでもう一度動かすと、success 1, failure 1という結果が出て、テストが動いたことが確認できます。次は_testapp外のファイルをテストしたい場合について書きます。