CakePHP1.3でテストコード(3) -ENUM型が使えない-

公開日: : CakePHP, IT, SimpleTest


cakePHP1.3でのSimpleTestを使ったテストケースの第3回目。
今回は、テーブル構成でENUM型を使っていた時にはまった点について。

 今までの流れ

 問題点

  • ENUM型を使っている場合、フィクスチャでテーブルの情報を利用することができない。

内容

以下のように、フィクスチャでテーブルの情報を利用。

<?php
   class SampleFixture extends CakeTestFixture {
          var $name = 'Sample';
          var $import = 'Sample';
   }

しかし、テーブルでENUM型を使っているとテーブルの情報をうまく利用できない模様。
以下のようなエラーが表示されます。

Unexpected PHP error [Column type enum(‘0′,’1′) does not exist] severity [E_USER_WARNING]

実際のテーブル配下のような形です。

idint(PK)
view_flagenum(‘0′,’1′)
bodytext
submitdatedatetime

 解決策

自動でテーブルの情報を読みこむことはできないので、テーブルの情報を自ら定義するように変更します。
ただし、公式サイトにあるように対応している型は、以下のみです。

string (VARCHAR にマップ)、text (TEXT にマップ)、integer (INT にマップ)、float (FLOAT にマップ)、datetime (DATETIME にマップ)、timestamp (TIMESTAMP にマップ)、time (TIME にマップ)、date (DATE にマップ)、そして binary (BLOB にマップ)
502 Bad Gateway

そこで今回は、ENUM型をstringとして扱うようにし、フィクスチャの$fieldsを以下のように書きます。

<略>
    var $fields  = array(
        'id' => array('type' => 'integer', 'key' => 'primary'),
        'view_flag' => array('type' => 'string', 'length' => 255, 'null' => false),
        'body' => 'text',
        'submitdate' => 'datetime'
<略>

実際のENUM型で扱うことにはなりませんが、これでテストコードを書くことができます。

広告

関連記事

no image

jQuery Mobileでミスしたこと -JSだけ最新にしてしまってレイアウト崩れたの巻-

* 前提(CDN先) jQuery Mobileを使う場合、cssを自前のサーバにおいて、jsはC

記事を読む

no image

CakePHP1.3でテストコード(2) -フィクスチャをいじってみる(テストデータの動的登録)-

cakePHP1.3でのSimpleTestを使ったテストケースの第2回目。 今回は、動的にテストデ

記事を読む

no image

iPhoneアプリ開発 芳名帳アプリ作成(3) -名前を書けるようにする-

* 今までの流れ - -[http://pplace.jp/2013/06/1531/:title=

記事を読む

no image

Jenkins+Capistranoを設定した時にしたこと -「ポート変更」「公開鍵認証」対応-

* 前段階 上記にあるように、Jenkins+Capistranoの設定をしています。 ただし、設

記事を読む

no image

order byでハマったこと -order by、group byの処理順序-

CakePHPでorder byとgroup byを使っていてはまったことについてのメモ。 * 

記事を読む

sample1

jQuery Mobile1.2のCollapsible Listsを試してみた -画像のカスタマイズについて-

8月1日にjQuery Mobile1.2 Alphaが出ました。 まだAlphaなので自

記事を読む

no image

CakePHPのモデルのキャッシュではまった -新しく追加したカラムに値が入らない-

タイトルのとおり、ちょこっとCakePHPではまったのでメモ。 * 作業内容 -MySQLで、ある

記事を読む

NEC_0882

Facebookで名刺を作ってみた -Mooの名刺作成サービス-

1ヶ月~半月くらい前に話題になっていたMooの名刺作成サービス。 話題になっていた時期に注文した名

記事を読む

no image

iPhoneアプリ開発 -Bundle identifierを変えてはまった-

* 現象 Bundle identifierを変えた際にXcodeで実機に転送しようとすると以下のエ

記事を読む

iPhoneアプリにGoogle Analyticsを入れてみる -Google Analytics SDK for iOS導入-

* 導入経緯 iPhoneアプリをリリースして、を使って「ランキング」や「ダウンロード数」は適宜チ

記事を読む

広告

Message

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

広告

no image
[感想] Effective Objective-C 2.0 ☆☆☆☆★(4.5)

* 構成 - 第1章 Objective-Cに慣れる -

no image
[感想] iOSアプリテスト自動化入門 ☆☆☆(3.0)

* 構成 - Chapter 1 テスト自動化への取り組み

DeployGateを試してみた(iOS編) -DeployGateがiOSに対応-

今までのDeployGate - -[http://pplace.

iPhone/iPadアプリを開発するためにやったこと

今までに、iPhoneを3本ほどリリース((リリースしたアプリは全て1

no image
ターミナルでgitのコマンドを補完したりブランチ名を表示する – macでgitを便利に使うために –

* やりたいこと macのターミナルでgitをいじっていると -今の

→もっと見る

PAGE TOP ↑