2008年

CakePHP1.2 SimpleTest でテストケースを作成する このエントリーを含むはてなブックマーク

CakePHP Add comments

CakePHP1.2 に SimpleTest をインストール で SimpleTest をインストールするところまでやったので、今度は実際にテストケースを作成してみます。

空のテストケースを作成する

app/test/cases/models に user.test.php を作成して以下のコードで保存する。

<?php
class UserTest extends User {
}
?>


test.php にアクセスして「App Test Cases」というリンクをクリックすると作成した user.test.php というリンクが表示されます。

この models/user.test.php をクリックすると作成したテストが実行されます。まだテストケースが何もないので当然テストは正常に終了します。

テスト正常終了

User モデルのテスト

実際にモデルのテストケースを作成してみます。
app/test/cases/models に user.test.php を以下のように修正します。

<?php 

App::import('Model', 'User');

class UserTest extends User {
    var $name = "UserTest";
    var $useDbConfig = "test";
}

class UserTestCase extends CakeTestCase {
    var $TestObject = null;

    function setUp() {
        $this->TestObject = new UserTest();
    }

    function tearDown() {
        unset($this->TestObject);
    }

    function testValidate() {
        $data = array();
        $this->TestObject->create($data);
        $result = $this->TestObject->validates();
        $this->assertFalse($result);
    }
}
?>

3行目の App::import でテストするモデルのクラスを読み込みます。
5行目から8行目でモデルのクラスを継承したクラスを作成して、$useDbConfig = ‘test’ としてテスト用のデータベースを使用するようにしています。
10行目で CakeTestCase を継承したクラスを作成します。クラス名は %Hoge%TestCase にします。
13行目の setUp メソッドでテストの前処理を行います。
17行目の tearDown メソッドでテストの後処理を行います。
21行目が実際のテスト内容です。テストを行うメソッドは test%Hoge% のようなメッソド名にします。

ここでは簡単なバリデーションのテストをしてみました。空の配列をバリデーション実行した場合のテストです。User モデルでは name が必須項目になっているとすると $this->TestObject->validates() は false になります。
$this->assertFalse メソッドは 引数が false ならテストは正常と判定します。

test.php にアクセスして user.test.php を再度実行すると
1/1 test cases complete: 1 passes, 0 fails and 0 exceptions.
と表示されます。

テストに失敗すると下図のように赤い帯で表示されます。またどのテストが失敗したかも表示されます。
テスト失敗

関連する投稿

5 Responses to “CakePHP1.2 SimpleTest でテストケースを作成する”

  1. typo Says:

    uset.test.php ha user.test.php desuyone

  2. matsuura Says:

    ご指摘ありがとうございます。uset => user に修正しました

  3. CakePHP1.2 SimpleTest でコントローラのテストケースを作成 | Sun Limited Mt. Says:

    [...] CakePHP1.2 SimpleTest でテストケースを作成する ではモデルのテストケースを作成したので今度はコントローラのテストケースを作成してみました。 [...]

  4. CakePHPでSimpleTest その2 モデルのテストケースのスケルトン確認 | ねねとまつの小部屋 Says:

    [...] CakePHP + SimpleTestなら http://book.cakephp.org/ja/view/160/testing http://bakery.cakephp.org/articles/view/testing-models-with-cakephp-1-2-test-suite http://my.opera.com/sizuhiko/blog/2008/06/28/cake-test http://blog.takeda-soft.jp/blog/show/186 http://www.straighten.jp/p/6 http://d.hatena.ne.jp/s-yo-ko/20080328 http://www.syuhari.jp/blog/archives/429 [...]

  5. CakePHPでSimpleTest その3 モデルのテストケース作成 | ねねとまつの小部屋 Says:

    [...] http://book.cakephp.org/ja/view/160/testing http://bakery.cakephp.org/articles/view/testing-models-with-cakephp-1-2-test-suite http://my.opera.com/sizuhiko/blog/2008/06/28/cake-test http://blog.takeda-soft.jp/blog/show/186 http://www.straighten.jp/p/6 http://d.hatena.ne.jp/s-yo-ko/20080328 http://www.syuhari.jp/blog/archives/429 [...]

Leave a Reply

Additional comments powered by BackType

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン