CakePHP3 のテストで Fixture を bake する #cakephp

TL;DR

Fixture を bake する際のテンプレ

bin/cake bake fixture \
  --records \
  --schema ${テーブル名} \
  --count ${レコード数} \
  --conditions "${WHERE句に書くような条件}"

--records

( test ではなく) default のデータベースを元にテスト用レコードを Fixture に自動生成してくれる。

--connection を合わせて使えば、 default 以外のデータベースを生成元にもできる

--schema

生成元のテーブル名を指定する。

--count

生成するレコードの数を指定する。

デフォルト値が 1 なので、複数レコードを生成したい時は指定する。

--conditions

生成元のレコードを絞り込める。

例えば --conditions "sex = 'male' AND age > 20" みたいなことができる。

id in (SELECT id FROM....) のようにサブクエリを活用すれば、関連レコードでの絞り込みも可能。

補足

詳しくは bin/cake bake fixture --help する。

参考

kojirooooocks.hatenablog.com