skillup

技術ブログ

PHP

CakePHP3系でのテスト処理

投稿日:

以前CakePHP2系のテストは書きましたが、3系は若干仕様が違いますので、3について書こうと思います。例によってエントリーレベルですが。

準備

phpunit

phpunitがインストールされているかをチェック。ディフォルトだとインストールされているはずですが。

インストールされていれば vendor/bin/phpunitがあるはず。ない場合はcomposer.jsonに足してcomposer経由でインストールをする。

下記のように記述してあげればOKです。

テスト用のDB

app.phpでtest用のデータベースがしっかり設定されているか。

実際につながっているサーバーとテストでつかうサーバーは設定で必ず分けましょう。

Fixtureとは

一般的にデータベースを使わないシステムはあまりありませんが、データベースを伴うテストは実行が難しいことも多いです。

難しい理由としては前提となる状態を常に保存しておくのが困難です。そのため一時的にテストのために使うデータベースのような状態をFixtureといいます。これにより、常にデータベースを目的の状態にしておくことができます。

bakeで自動生成

ゼロからテストファイルを作らなくても、bakeで自動生成してあげればテストのファイルも自動で作られます。よくわからないうちはこれを実行したり、いじるのが一番楽でしょう。

実行

上記の設定で問題なければ

でテストが通るはず。controller→model→viewと実行されていきます。
一部のテストケースだけ実行したい場合は下記のように入力すればOK。

他参考リンクなど

http://book.cakephp.org/3.0/ja/development/testing.html

http://qiita.com/ran/items/d8e234250c77e8dcd40e

-PHP
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Angularでのイベント+改行+echoでのバッファサイズ変更

Contents1 Angularのイベント処理2 Angularでの改行ネタ3 echoでのバッファサイズ変換 Angularのイベント処理 Angularを使っていて楽なのはHTMLタグにインベン …

no image

cakePHPのajax

cakePHPのajaxですが、javascriptはいいとして、コントローラー側をどう実装するのか気になる方は多いでしょう。 cakeの画面は基本的にコントローラーにアクセスした後は通常はビューに遷 …

no image

phing

今までphpunit,phpmd,phpcodesniffer,phpdocumentなどのツールをいろいろと試してきますが、個別に動かしていると大変面倒ですので、これを一気に行えるライブラリがありま …

no image

PHPでの画像ダウンロード

PHPで画像ダウンロードをさせる処理があったのでちょっとメモ。 CSVのダウンロードなどと同じように基本的にはHTTPリクエストの応答メッセージをいじるようです。 書こうと思ったのですが、ほぼリンクの …

no image

インメモリデータベース redis

インメモリデータベースのredis(レディース)について。 キャッシュとして以前はmemcachedを使っていましたが、いろいろ多機能ということでredisをちょっと触ってみようかと。 Content …