1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.test.phpunit.db" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Zend_Test_PHPUnit_Db</title>
<para>
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.
</para>
<para>
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.
<classname>Zend_Test_PHPUnit_Db</classname> simplifie cette tâche en offrant la possibilité de créer
des DataSets et des DataTables provenant d'instances de <classname>Zend_Db_Table_Abstract</classname>
ou <classname>Zend_Db_Table_Rowset_Abstract</classname>.
</para>
<para>
Aussi, ce composant permet l'utilisation de n'importe quel
<classname>Zend_Db_Adapter_Abstract</classname> alors qu'à l'originine PHPUnit ne fonctionne
qu'avec <acronym>PDO</acronym>. Un adaptateur de test basé sur
<classname>Zend_Db_Adapter_Abstract</classname> est aussi inclus. Il permet d'instancier un adaptateur
qui ne requiert aucune base de données réelle.
</para>
<xi:include href="Zend_Test-PHPUnit-Db-Quickstart.xml">
<xi:fallback><xi:include href="../../en/module_specs/Zend_Test-PHPUnit-Db-Quickstart.xml" /></xi:fallback>
</xi:include>
<xi:include href="Zend_Test-PHPUnit-Db-Testing.xml">
<xi:fallback><xi:include href="../../en/module_specs/Zend_Test-PHPUnit-Db-Testing.xml" /></xi:fallback>
</xi:include>
<xi:include href="Zend_Test-PHPUnit-Db-Adapter.xml" />
</sect1>
|