Zend_Test_PHPUnit_Db(日本語)
データ・アクセスとドメインモデルを組み合わせると、
目標をテストするために、データベースを使う必要がしばしばあります。
しかし、データベースはそれぞれのテスト全体で永続的です。
そして、それは互いに影響を及ぼすことができるテスト結果に至ります。
さらにまた、テストが動作できるようにするためにデータベースを準備することは、
相当な作業です。
PHPUnitデータベース機能拡張では、
それぞれのテストの間でデータベースを準備したり、取り外したりするための、
きわめて単純な手法を提供することにより、
データベースを用いたテストを単純化します。
Zend Frameworkアプリケーションに対する
データベース・テストを書くことが単純化されるように、
このコンポーネントは、Zend Frameworkに依存したコードでPHPUnitデータベース機能拡張を拡張します。
データベース・テストは、2つの概念上の実体、DataSets及びDataTablesで説明できます。
内部的には、PHPUnitデータベース機能拡張は、データベース、そのテーブルと、
構成ファイルまたは本当のデータベース内容からなる列を含むオブジェクト構造を構築できます。
そこで、この抽象的なオブジェクト・グラフは、位置指定子を使用して比較できます。
データベース・テストの一般的なユース・ケースは、
種となるデータで一部のテーブルを準備し、
それから操作を一部実行して、
データベース階層で操作されたことが、
あらかじめ定義された期待される、とある状態と等しいことを最終的に示すことです。
Zend_Test_PHPUnit_Dbは、
既存のZend_Db_Table_Abstract
またはZend_Db_Table_Rowset_Abstract
インスタンスからDataSets及びDataTablesを生成できるようにして、
この作業を単純化します。
さらにまた、このコンポーネントは、どんなZend_Db_Adapter_Abstractでも
テストのために統合できるようにします。
ところが、本来の機能拡張は、PDOで機能するだけです。
Zend_Db_Adapter_Abstractのためのテスト・アダプタ実装は、
このコンポーネントにも含まれます。
APIメソッドによって使われる
SQLと結果スタックの働きをするDBアダプタを
データベースを全く必要としないで、
インスタンス化できるようにします。