Cake2.xでのテストモジュールを使う
公式ドキュメント だとUnixで動かすことが前提なので、備忘録をかねてメモする
- xampp\php上で、cmd.exeから
phpunit --version
とコマンドを入力し、何らかのバージョン番号が帰ってくることを確認する。
- バージョン番号が確認できない場合、xampp\phpにファイルphpunitの存在を確認した上で、なければ、(https://phar.phpunit.de/)からphpunit.pharをダウンロードし、phpunitと名前を変えて保存
- テスト用データベースを設定し、database.phpを編集する
public $test = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'dbhost',
'login' => 'dblogin',
'password' => 'dbpassword',
'database' => 'test_database'
);
- ウェブランナー
http://localhost/[appname]/test.php
にアクセスして、こんな画面が表示されれば成功 - ディレクトリ
app/Test/Case/[Type]
というディレクトリに、○○○Test.php
というファイルを作成し、CakeTestCase、または ControllerTestCase, PHPUnit_Framework_TestCaseを継承したクラスを作る
エラーの対応 PHPUnit_Framework_TestCase::__construct() must be of the type array
- こちらは何のこと無い、テストクラスに Testをつけていなかったため、controllerと同じクラス名になってしまっていた。テストクラスを生成しようとしてもControllerを継承していなかったので上記の感じなエラーとなった