Uguu Software SourceForge.jp

Powered by SmartDoc

PHPUnit_DB

2005-10-07
uguu(Uguu Software, uguu@users.sourceforge.jp, http://www.uguu.mydns.jp)
http://sourceforge.jp/projects/php-dbunit

目次

概要

PHP で、 RDBMS に依存する UnitTest を簡単にできるようにするユーティリティを提供します。

導入

PEAR パッケージとして提供しますので、 PEAR インストーラを使用してインストールします。ダウンロードしたファイルを PHPUnit_DB-xxx.tgz とすると、次のコマンドでインストールすることができます。

pear install PHPUnit_DB-xxx.tgz

使い方

PHPUnit_DB パッケージに含まれる PHPUnit_DB_Tool クラスを使用すると、データのエクスポート、インポート、及びクリアを簡単に行うことができます。

インスタンス化

まず、 PHPUnit_DB_Tool クラスをインスタンス化します。

$tool = &new PHPUnit_DB_Tool('pgsql://postgres:password@localhost/test');

引数に DSN をとります。 PEAR:DB を参照してください。

データのエクスポート

PHPUnit_DB_Tool::exportTables() メソッドを呼び出すことで、テーブルのデータを配列で取得することができます。

$data = $tool->exportTables(array('foo', 'bar', 'boo'));
if (PEAR::isError($data)) {
    die($data->toString());
}

引数にはエクスポートするテーブルの名前を配列で渡します。この場合は foo, bar, boo テーブルのデータをエクスポートしています。エクスポートした配列を var_export() 関数でファイルに出力したりすることで、テストデータとして利用したり、データベースに依存しないダンプファイルとすることができます。

データのインポート

PHPUnit_DB_Tool::importTables() メソッドを呼び出すことで、 PHPUnit_DB_Tool::exportTables() メソッドで出力したような形式の配列をテーブルのデータとしてインポートすることができます。

$result = $tool->importTables($data);
if (PEAR::isError($result)) {
    die($result->toString());
}

引数には PHPUnit_DB_Tool::exportTables() メソッドで出力したような形式の配列を指定します。この配列に格納されている全てのデータをテーブルにインポートします。インポートする前に該当するテーブルのデータを全て削除します。

データのクリア

PHPUnit_DB_Tool::clearTables() メソッドを呼び出すことで、テーブルのデータを削除することができます。

$result = $tool->clearTables(array('foo', 'bar', 'boo'));
if (PEAR::isError($result)) {
    die($result->toString());
}

引数には削除するテーブルの名前を配列で渡します。この場合は foo, bar, boo テーブルのデータを削除します。

ライセンス

PHP License 3.0 を適用します。

その他

不具合報告、サポート要求、パッチ、要望などは SourceForge.jp: トラッキングに登録してください。ちょっとしたことならメールでも受け付けます。

いずれ PEAR に投稿し、正式に PEAR パッケージにしたいと思います。