# Zend_Test_PHPUnit_Db

Couper l'accès aux données au modèle métier requiert souvent l'utilisation d'une base de données pour les tests. Mais la base est persistente entre les tests, et leur isolation est donc rompue, de plus, configurer une base de données pour des tests peut vite s'avérer complexe. L'extension sur les bases de données de PHPUnit simplifie les procédures de tests en offrant des mécanismes de preconditions et postconditions sur la base entre les tests. Ce composant étend donc l'extension base de données de PHPUnit en ajoutant du code spécifique à Zend Framework.

Les tests de base de données peuvent être résumés en 2 notions : DataSets et DataTables. En interne, PHPUnit peut créer un objet dont la structure est callée sur une base de données dont les tables et les enregistrements sont montés depuis un fichier de configuration ou un contenu réel. Cet objet abstrait peut alors être comparé à des structures. Un cas courant en tests de base de données consiste à configurer des tables en les remplissant de données fictives, éxecuter du code "utile", puis comparer la base de données avec une structure. Zend_Test_PHPUnit_Db simplifie cette tâche en offrant la possibilité de créer des DataSets et des DataTables provenant d'instances de Zend_Db_Table_Abstract ou Zend_Db_Table_Rowset_Abstract.

Aussi, ce composant permet l'utilisation de n'importe quel Zend_Db_Adapter_Abstract alors qu'à l'originine PHPUnit ne fonctionne qu'avec PDO. Un adaptateur de test basé sur Zend_Db_Adapter_Abstract est aussi inclus. Il permet d'instancier un adaptateur qui ne requiert aucune base de données réelle.