somemo's diary

プログラマ、雑記、プログラミング関係はLinkから、数式はこっちでまとめていることが多い

【symfony】テストデータの作成

テストデータの作成についてのメモです。

sfPropelData

指定されたデータを実際にデータに対して登録するためのクラスです。

class sfPropelData extends sfData

以下は、データを登録するためのメソッドです。

public function loadData($directory_or_file = null, $connectionName = 'propel')

$directory_or_fileの値から投入するデータのフィクスチャを決定し、下記のメソッドに渡します。

protected function doLoadDataFromFile($fixture_file)
{
  // import new datas
  $data = sfYaml::load($fixture_file);

  $this->loadDataFromArray($data);
}

ymlから配列を作成し、loadDataFromArrayメソッドで登録します。

sfData

sfPropelDataが継承しているクラスです。クラス宣言は以下のとおりです。

abstract class sfData

sfDataには、下記の抽象メソッドがあります。

abstract public function loadDataFromArray($data);

この抽象メソッドをsfPropelDataが実装しています。

$propel_data = new sfPropelData();
$propel_data->loadDataFromArray(array(
   ’user’ => array(
       array('id' => 1, 'name' => 'abc'),
       array('id' => 2, 'name' => 'def'),
   )
));