PHPUnitのDbUnitで用意されてるassertTablesEqualをYAMLから利用する

なんかYAML大好きみたいな人になってきたけど

ドキュメントにフラットXMLデータセット以外の方法が乗ってなかったからメモ
フラットXML データセットとMySQL XMLデータセットはXMLデータセットと同じ

第8章 データベースのテストから引用

class GuestbookTest extends PHPUnit_Extensions_Database_TestCase
{
    public function testAddEntry()
    {
        $guestbook = new Guestbook();
        $guestbook->addEntry("suzy", "Hello world!");

        $queryTable = $this->getConnection()->createQueryTable(
            'guestbook', 'SELECT * FROM guestbook'
        );
        $expectedTable = $this->createFlatXmlDataSet("expectedBook.xml")
                              ->getTable("guestbook");
        $this->assertTablesEqual($expectedTable, $queryTable);
    }
}

上の11行目を以下のように書き換えてyamlファイルを用意する
YAML データセット

$expectedTableObj = new PHPUnit_Extensions_Database_DataSet_YamlDataSet('_files/guestbook.yaml');
$expectedTable = $expectedTableObj->getTable('guestbook');

たぶん他のデータセットも同じ方法で行けると思う

Comments