2009-06-04 8 views
2

CakePHPで単体テスト用のフィクスチャデータを(SimpleTest経由で)作成しようとしていますが、私の外来キーの関係をどう扱うかわかりません。ここではフィクスチャコードのサンプルです:あなたは専門イベントへの外部キーを持って推測できるようCakePHPでSimpleTestを使って単体テストを行うためのフィクスチャで、外部キーの関係をどうやって扱うのですか?

<?php 
class SpecialtyFixture extends CakeTestFixture { 
    var $name = "Specialty"; 
    var $import = "Specialty"; 

    var $records = array(
      array(
       'id' => '1', 
       'event_id' => '1', 
       'code' => 'endocrin-1', 
       'name' => 'Endocrinology'), 
      array(
       'id' => '2', 
       'event_id' => '1', 
       'code' => 'ent-1', 
       'name' => 'Ear, Nose and Throat') 
    ); 
} 
?> 

は、だから、(私のイベントモデルは次のようになります):

<?php 
class Event extends AppModel { 
    var $name = "Event"; 
    var $primaryKey = "id"; 

    var $hasMany = array(
      'EventLocation' => array('className' => 'EventLocation'), 
      'Faculty' => array('className' => 'Faculty'), 
      'Agenda' => array('className' => 'Agenda'), 
      'Role' => array('className' => 'Role'), 
      'Specialty' => array('className' => 'Specialty'), 
    ); 

    var $hasAndBelongsToMany = array('User'); 
} 
?> 

私は取得していますエラーをこれは、次のとおりです。

Unexpected PHP error [<span style = "color:Red;text-align:left"><b>SQL Error:</b> 1054: Unknown column 'event_id' in 'field list'</span>] severity [E_USER_WARNING] in [/dev/trunk/cake/libs/model/datasources/dbo_source.php line 525] /dev/trunk/app/tests/cases/models/event.test.php -> EventTestCase -> endCase

私はCakePHPのフィクスチャデータの私の理解が最小である認めるよ(ドキュメントがちょっと不足している、そしてウェブ上の例では、すべてのやや焼き直し簡単な例)ので、私は/何をすべきかに関する任意のアイデアですか?

答えて

3

Debuggableの良い人によってFixturize shellを見てください。データベースにデータを格納したら、このシェルを使用してフィクスチャに自動的にデータを抽出することができます。ひどい頭痛を救う。

私の知識は限られていますが、データベースの中に何かを得て、それをフィクスチャに抽出すれば、このような痛みを避けることができると思います。

+0

素晴らしいです!これはまさに私が探していたものです(私はむしろ、治具にデータを抽出する方がはるかです)。 ありがとう! – leo

関連する問題