Phactoryで単数形のテーブルをテストする
PhactoryはRoRライクな設計思想のため、テーブル名を勝手に複数形に変換(pluralize)します。
このせいで単数形のテーブル名がテストできない場合、下記のようにdefine()の前にsetInflector()を使えば直ります。
// dtb_shopというテーブルをテストしたい
protected function setUp() {
$pdo = new PDO(DB_TYPE . ':dbname=' . DB_NAME . ';host=' . DB_SERVER . ';port=' . DB_PORT, DB_USER, DB_PASSWORD);
$pdo->exec('CREATE TABLE dtb_shop (shop_id INTEGER, shop_key TEXT)');
Phactory::setConnection($pdo);
Phactory::reset();
Phactory::setInflection('dtb_shop', 'dtb_shop'); // 勝手に「dtb_shops」にされるのを防ぐ
Phactory::define('dtb_shop', array('shop_id' => '$n', 'shop_key' => 'test shop $n'));
$this->object = new ShopModel;
}
参考: Issue #3: Can’t create singular tables · chriskite/phactory · GitHub