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

LaravelでのAPI実装

Laravelで外部からAPI叩いてデータ入力みたいなことをしたかったのでこれを機に勉強。認証とかを通してないのでそのまま公開すると危険です・・(汗) 参考リンク [PHP] Laravel5.6で、 …

no image

eclipseでのPHPソースの扱い方

Contents1 既存ファイルからプロジェクト生成2 PHP5.4以降でコンパイルする3 ctpファイルのシンタックスハイライト 既存ファイルからプロジェクト生成 超小ネタですが、Eclipseです …

no image

ループ処理+switch

PHPでちょっと小ネタ foreachやwhileのようなループを抜けるときにcontinueを使うんですが、その中にswitchが入っていると、switchに対してのcontinueがきいてしまって …

no image

phpの時分秒+cakePHPのupdate

ちょっと小ネタ集になります。 Contents1 PHPで秒→時分秒変換2 cakePHPでのupdate PHPで秒→時分秒変換 PHPで秒数から時分秒に変換するプログラムです。 汎用的かなと思った …

no image

PHPでの空白削除に関して

PHPで空白を削除する方法についてメモします。 trimについて 空白を削除する関数といえばtrimが何といっても一番有名でしょう。