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

iPhoneアプリ開発 −遷移先のViewControllerに値を引き継ぎたい−

例えば、トップページに複数個のボタンがあって、「A」と「B」というボタンを押下した際に、同じView

記事を読む

Jenkins + iPhoneアプリ(3) -ipaファイルをTestFlightにアップロード-

* これまで - -[http://pplace.jp/2013/01/1192/:title=

記事を読む

no image

Twitterでサービスにログイン -PHP(CakePHP1.3)で実践編-

以前、ソーシャルログインについて書きました。 ただ、Twitter連携にまだ触れてない人にはちょ

記事を読む

no image

jQuery Mobileの初期設定 -jQuery Mobieを利用時にページ内リンクさせたい-

* 前提 jQuery Mobileを利用していて、以下のタグを使ってページ内遷移したいことがありま

記事を読む

no image

FacebookページをFacebookアプリで表示 -iPhoneアプリ編-

* やりたいこと Facebookアプリを入れている人には、アプリでFacebookページで表示。

記事を読む

no image

Twitterでプロテクトをかけているユーザが投稿したステータスを取得する方法

* 前提 ID Twitterの各投稿にはIDが存在していています。 そのIDを元にステータス

記事を読む

no image

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

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

記事を読む

jenkins-files

Windows環境でもJenkins -執事さんとご対面-

Trac Lightningに同梱されていますし、Windows環境でHudsonを使っている人は結

記事を読む

no image

TestLink1.91のバグの修正方法

どうやらTestLink1.91にはバグがあるようなので、修正方法を以下に記述。 Test

記事を読む

no image

複数アカウントでgithubを使う

1つの端末で複数のアカウントを使いたくなったので、その方法を整理してみた。 流れとしては以下のとおり

記事を読む

広告

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 ↑