Datenbankanwendungen mit Django effektiv testen
Datenbanken dienen dazu, zu speichern ohne zu vergessen – das erschwert jedoch automatisches Testen. Hier hilft das Python-Framework Django.
Automatische Tests sollten immer unter den gleichen Voraussetzungen laufen. Datenbanken dienen aber dazu, zu speichern ohne zu vergessen – jede SQL-Anweisung im Test einer Datenbankanwendung verändert also den Status für andere Tests. Irgendwie müssen diese widerstrebenden Prinzipien zusammenfinden. Django löst das scheinbare Dilemma elegant.
Ein neuer TestCase prüfte, ob die Anwendung Daten korrekt in der Datenbank gespeichert hatte. Nach ein paar Durchläufen passte die Testdatenbank nicht mehr auf die SSD, weil keiner der Tests die Daten wieder löschte. Eine Lösung bestand aus einem Winkelzug in Form eines Pseudo-Tests, der alle Datensätze eines Typs entfernte. Kurz darauf fluchte ein Kollege, dass seine Testdaten verschwunden seien.
Diese Szene spielte sich vor Jahren mal bei einem Projekt ab, bei dem alle Entwickler mit einer einzigen Test-Datenbank arbeiteten. Sie veranschaulicht, warum eine Datenbank fĂĽr alle, besonders zusammen mit automatischen Tests, eine dumme Idee ist.
Das war die Leseprobe unseres heise-Plus-Artikels "Datenbankanwendungen mit Django effektiv testen". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.