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

July 23, 2012

なんか 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');

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


Profile picture

Webのフロントエンドからバックエンド、プロトタイピングからプロダクションまで。定額の開発サービスも。詳しくはAboutページで。