<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 17170 -->
<!-- Reviewed: no -->
<sect1 id="zend.test.phpunit.db" xmlns:xi="http://www.w3.org/2001/XInclude">
    <title>Zend_Test_PHPUnit_Db</title>

    <para>
        Die Kopplung von Datenzugriff und dem Domain Modell benötigt oft die Verwendung einer
        Datenbank für Testzwecke. Aber die Datenbank ist persistent über alle Tests was dazu
        führen kann das die Test Resultate sich gegenseitig beeinflussen. Weiters ist das
        Setup der Datenbank eine ganz schöne Arbeit damit die Tests laufen können. PHPUnit's
        Datenbank Extension vereinfacht das Testen mit einer Datenbank durch das Anbieten eines
        einfachen Mechanismus für das Setup und Herunterfahren der Datenbank zwischen den
        unterschiedlichen Tests. Diese Komponente erweitert die PHPUnit Datenbank Extension
        mit Zend Framework spezifischem Code, damit das Schreiben von Datenbank Tests für
        Zend Framework Anwendungen vereinfacht wird.
    </para>

    <para>
        Das Testen von Datenbanken kann mit zwei konzeptionellen Einträgen beschrieben werden,
        DataSets und DataTables. Intern kann die PHPUnit Datenbank Extension eine Objekt Struktur
        von einer Datenbank erstellen, und dessen Tabellen und enthaltene Zeilen von einer
        Konfigurationsdatei oder einer realen Datenbankinhalt. Dieser abstrakte Objektgraph kann
        dann verglichen werden indem Assertions verwendet werden. Ein üblicher Verwendungszweck
        beim Testen von Datenbanken ist das Setup von einigen Tabellen mit eingefügten Daten, in
        denen dann einige Operationen stattfinden, und letztendlich geprüft wird das der
        endgültige Datenbankstatus identisch mit dem vordefinierten und erwarteten Status ist.
        <classname>Zend_Test_PHPUnit_Db</classname> vereinfacht diese Aufgabe indem es erlaubt wird
        DataSets und DataTables von existierenden <classname>Zend_Db_Table_Abstract</classname>
        oder <classname>Zend_Db_Table_Rowset_Abstract</classname> Instanzen erstellt werden.
    </para>

    <para>
        Weiters erlaubt es diese Komponente jede <classname>Zend_Db_Adapter_Abstract</classname>
        für das Testen zu integrieren wobei die originale Erweiterung nur mit
        <acronym>PDO</acronym> arbeitet. Eine Implementation des Test Adapters für
        <classname>Zend_Db_Adapter_Abstract</classname> ist auch in dieser Komponente inkludiert.
        Sie erlaubt es einen Db Adapter zu instanziieren der überhaupt keine Datenbank benötigt und
        als <acronym>SQL</acronym> arbeitet sowie als Ergebnis Stack der von den
        <acronym>API</acronym> Methoden verwendet wird.
    </para>

    <xi:include href="Zend_Test-PHPUnit-Db-Quickstart.xml" />
    <xi:include href="Zend_Test-PHPUnit-Db-Testing.xml" />
    <xi:include href="Zend_Test-PHPUnit-Db-Adapter.xml" />
</sect1>
