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 45 46
|
<?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>
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>
|