LoginSignup
5
5

More than 5 years have passed since last update.

PHPUnitのDBUnit拡張でフィクスチャをYAMLで書く

Last updated at Posted at 2014-01-23

ドキュメントでは、YamlDataSetの使い方はこんな感じ。

PHPUnit Manual – 第8章 データベースのテスト

class YamlGuestbookTest extends PHPUnit_Extensions_Database_TestCase
{
    protected function getDataSet()
    {
        return new PHPUnit_Extensions_Database_DataSet_YamlDataSet(
            dirname(__FILE__)."/_files/guestbook.yml"
        );
    }
}

/_files/guestbook.ymlみたいなファイルを作りたくない場合はこうしてます。

    protected function createInlineYamlDataSet($yaml)
    {
        $meta = stream_get_meta_data($tmp = tmpfile());
        fwrite($tmp, $yaml);
        return  new PHPUnit_Extensions_Database_DataSet_YamlDataSet(
            $meta['uri']
        );
    }

    protected function getDataSet()
    {
        $yaml = <<<EOD
guestbook:
  -
    id: 1
    content: "Hello buddy!"
    user: "joe"
    created: 2010-04-24 17:15:23
EOD;
        return $this->createInlineYamlDataSet($yaml);
    }

stream_get_met_dataのところは、自動的に削除される一時ファイルを作成してオープンしつつ、そのファイル名を取得しています。こちらが参考になります。

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5