PHPUnitで考察中。
デフォルトで共通にデータを入れたい部分の考えがあり。そのデータを外部ファイルで読み込む形にしました。ただし、xmlやymlで読み込むのでなく、配列で定義して読む感じで行こうかと思ってます。これはマジックナンバーのお話が記事にあり同感だなと思いそうしました。
まだ試してないですがソースを以下のような感じで書いてみようかと・・・
$_dataで配列に読み込むファイルを定義するとそのデータをマージしてデータとして登録するような感じにする想定です。
class TestsBase extends \PHPUnit_Extensions_Database_TestCase {
protected $_data = array();
protected function getConnection() {
$db = \Database_Connection::instance();
return $this->createDefaultDBConnection($db->connection(), 'xxxx');
}
protected function getDataSet() {
$work = array();
foreach($this->_data as $data) {
$work = array_merge($work,include(APPPATH."/tests/fixture".$data));
}
return $this->createArrayDataSet($work);
}
}
上記のクラスを継承して継承元で以下のように定義すれば読まれるかなぁと思ってます。
class Test_XXXXXXX extends TestsBase {
/**
* データベース初期値
*/
protected $_data = array(
"/file1.php"
, "/file2.php"
);
file1.phpにはテーブル毎のデータを格納しとこうかと。こうすれば組み合わせで読み込むの変更できるかなーっと思ってます。うまくいくかなぁ・・・
file1.php
return [
'table名' => [
[
'id' => 1
, 'nname' => '名前1'
]