Freigeben über


Skripts in Datenbankkomponententests

Aktualisiert: November 2007

Jeder Datenbankkomponententest enthält eine Vortestaktion, eine Testaktion und eine Nachtestaktion. Jede dieser Aktionen enthält wiederum Folgendes:

  • Ein T-SQL-Skript, das für eine Datenbank ausgeführt wird

  • 0 oder mehr Testbedingungen zur Auswertung der Ergebnisse der Skriptausführung

Das T-SQL-Testskript ist die einzige Komponente in der Testaktion, die in jedem Datenbankkomponententest enthalten sein muss. Neben dem Testskript sollten auch noch Testbedingungen angegeben werden, um zu überprüfen, ob vom Testskript die erwarteten Werte zurückgegeben wurden. Durch die Testaktion wird ein bestimmtes Objekt in der Datenbank ausgeführt oder geändert, und die Änderungen werden ausgewertet.

Für jede Testaktion können Sie eine Vortestaktion und eine Nachtestaktion angeben. Die Vortest- und Nachtestaktionen enthalten ähnlich wie die Testaktion ein T-SQL-Skript und 0 oder mehr Testbedingungen. Mit einer Vortestaktion können Sie sicherstellen, dass die Datenbank das Ausführen der Testaktion unterstützt und sinnvolle Ergebnisse zurückgegeben werden. Beispielsweise können Sie mit einer Vortestaktion überprüfen, ob eine Tabelle Daten enthält, bevor Sie mit einem Testskript einen Vorgang für diese Daten ausführen. Nachdem die Datenbank durch eine Vortestaktion vorbereitet wurde und sinnvolle Ergebnisse von der Testaktion zurückgegeben wurden, wird die Datenbank durch die Nachtestaktion wieder in den Zustand vor der Ausführung der Vortestaktion versetzt. In einigen Fällen könnten Sie die Nachtestaktion verwenden, um die Ergebnisse der Testaktion zu überprüfen. Das liegt daran, dass die Nachtestaktion möglicherweise über umfangreichere Datenbankberechtigungen verfügt als die Testaktion. Weitere Informationen finden Sie unter Übersicht über Verbindungszeichenfolgen und Berechtigungen.

Neben diesen drei Aktionen gibt es noch zwei Testskripts (so genannte CommonScripts), die vor und nach einem Datenbankkomponententest ausgeführt werden. Daher können während der Ausführung eines Datenbankkomponententests bis zu fünf T-SQL-Skripts ausgeführt werden. Nur das T-SQL-Skript in der Testaktion ist erforderlich, die CommonScripts sowie das Vortest- und das Nachtestskript sind optional.

Die folgende Tabelle enthält eine vollständige Liste der Skripts für jeden Datenbankkomponententest.

Aktion

Skripttyp

Beschreibung

TestInitialize

CommonScript (Initialisierung)

(Optional) Dieses Skript geht allen Vortest- und Testaktionen im Komponententest voraus. Das TestInitialize-Skript wird vor jedem Komponententest in einer angegebenen Testklasse ausgeführt. Dieses Skript wird mit dem privilegierten Kontext ausgeführt.

Vortest

Testskript

(Optional) Dieses Skript ist Teil des Komponententests. Das Vortestskript wird vor der Testaktion in einem Komponententest ausgeführt. Dieses Skript wird mit dem privilegierten Kontext ausgeführt.

Test

Testskript

(Erforderlich) Dieses Skript ist Teil des Komponententests. Das Testskript wird für die Datenbank ausgeführt. Mit diesem Skript kann z. B. eine gespeicherte Prozedur ausgeführt werden, die Tabellenwerte abruft, einfügt oder aktualisiert. Dieses Skript wird mit dem Ausführungskontext ausgeführt.

Nachtest

Testskript

(Optional) Dieses Skript ist Teil des Komponententests. Das Nachtestskript wird nach einem einzelnen Komponententest ausgeführt. Dieses Skript wird mit dem privilegierten Kontext ausgeführt.

TestCleanup

CommonScript (Bereinigung)

(Optional) Dieses Skript folgt auf den Komponententest. Das TestCleanup-Skript wird nach allen Komponententests in einer angegebenen Testklasse ausgeführt. Dieses Skript wird mit dem privilegierten Kontext ausgeführt.

Weitere Informationen über die verschiedenen Sicherheitskontexte, in denen die einzelnen Skripts ausgeführt werden, finden Sie unter Übersicht über Verbindungszeichenfolgen und Berechtigungen und im Abschnitt über Berechtigungen für Datenbankkomponententests unter Erforderliche Berechtigungen in der Database Edition.

Ausführungsreihenfolge von Skripts

Beachten Sie die Reihenfolge, in der die einzelnen Skripts ausgeführt werden. Diese Reihenfolge kann zwar nicht geändert werden, Sie können jedoch entscheiden, welches Skript ausgeführt werden soll. Die folgende Abbildung enthält die Auswahl der Skripts, die in einem Testlauf mit zwei Datenbankkomponententests verwendet werden können, und veranschaulicht die Reihenfolge, in der diese ausgeführt werden:

Hinweis:

Änderungen an der Datengenerierung sowie der Datenbankbereitstellung werden zu Beginn des Testlaufs vor der Ausführung von Skripts übernommen. Diese Änderungen werden mit der Verbindungszeichenfolge für den privilegierten Kontext angewendet. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren der Ausführung von Datenbankkomponententests.

Initialisierungs- und Bereinigungsskripts

Im Datenbankkomponententest-Designer werden das TestInitialize-Skript und das TestCleanup-Skript als CommonScripts bezeichnet. Im vorherigen Beispiel wird davon ausgegangen, dass die beiden Komponententests Teil der gleichen Testklasse sind. Sie verwenden daher die gleichen TestInitialize- und TestCleanup-Skripts. Dies ist bei allen Komponententests in einer einzelnen Testklasse immer der Fall. Wenn der Testlauf jedoch Komponententests aus unterschiedlichen Testsklassen enthält, werden die CommonScripts für die entsprechende Testklasse vor und nach den Komponententests ausgeführt.

Wenn Sie Komponententests immer nur mit dem Datenbankkomponententest-Designer erstellen, sind Sie möglicherweise noch nicht mit dem Konzept der Erstellung einer Testklasse vertraut. Immer wenn Sie einen Komponententest durch Öffnen des Menüs Test und Klicken auf Neuer Test erstellen, wird von Database Edition eine Testklasse generiert. Testklassen werden im Projektmappen-Explorer mit dem von Ihnen angegebenen Testnamen und der Erweiterung .cs oder .vb angezeigt. Innerhalb jeder Testklasse werden einzelne Komponententests als Testmethoden gespeichert. Unabhängig von der Anzahl der Testmethoden, d. h. der Komponententests, kann jede Testklasse 0 oder ein TestInitialize- sowie 0 oder ein TestCleanup-Skript aufweisen.

Mit dem TestInitialize-Skript können Sie die Testdatenbank vorbereiten, und mit dem TestCleanup-Skript können Sie die Testdatenbank in einen bekannten Zustand zurückversetzen. Beispielsweise können Sie mit TestInitialize eine gespeicherte Hilfsprozedur erstellen, die später im Testskript ausgeführt wird, um eine andere gespeicherte Prozedur zu testen.

Vortest- und Nachtestskripts

Die mit Vor- und Nachtestaktionen verknüpften Skripts unterscheiden sich i. d. R. je nach Komponententest. Sie können mit diesen Skripts inkrementelle Änderungen an der Datenbank vornehmen und diese Änderungen anschließend wieder bereinigen.

Siehe auch

Konzepte

Verwenden von Testbedingungen in Datenbankkomponententests

Übersicht über die Terminologie der Database Edition