Freigeben über


Exemplarische Vorgehensweise: Erstellen und Ausführen eines Datenbankkomponententests

Aktualisiert: November 2007

In dieser exemplarischen Vorgehensweise erstellen Sie einen Datenbankkomponententest, der ein einfaches T-SQL (Transact-SQL)-Skript testet. Damit Sie einen Datenbankkomponententest erstellen können, müssen Sie ein Datenbankprojekt (sofern nicht bereits vorhanden) für die zu testende Datenbank erstellen. Außerdem muss die Datenbank Daten enthalten, damit der Test aussagekräftige Ergebnisse zurückgeben kann.

In dieser exemplarischen Vorgehensweise erstellen Sie zunächst ein Datenbankprojekt und importieren das Schema der Datenbank Northwind. Nach dem Erstellen des Projekts erstellen Sie einen Datengenerierungsplan, um die Daten für eine Spalte in der Tabelle Orders zu generieren. Anschließend erstellen Sie ein Projekt, das den Test enthalten soll, schreiben den Test und führen ihn aus, um zu überprüfen, ob das Skript wie erwartet funktioniert.

Vorbereitungsmaßnahmen

Um diese exemplarische Vorgehensweise auszuführen, müssen Sie eine Verbindung mit einem Datenbankserver herstellen, auf dem die Datenbank Northwind installiert ist.

So erstellen Sie ein Datenbankprojekt

  1. Zeigen Sie im Menü Datei auf Neu, und klicken Sie auf Projekt.

    Das Dialogfeld Neues Projekt wird angezeigt.

  2. Erweitern Sie unter Projekttypen den Knoten Datenbankprojekte, und klicken Sie auf Microsoft SQL Server.

  3. Klicken Sie in der Liste Vorlagen auf SQL Server 2000-Assistent.

  4. Geben Sie unter Name den Namen TestNorthwind ein.

  5. Wählen Sie in der Liste Projektmappe die Option Neue Projektmappe erstellen aus, sofern diese nicht bereits hervorgehoben ist.

  6. Aktivieren Sie das Kontrollkästchen Projektmappenverzeichnis erstellen, falls dieses nicht bereits aktiviert ist.

  7. Deaktivieren Sie ggf. das Kontrollkästchen Zur Quellcodeverwaltung hinzufügen, und klicken Sie auf OK.

    Der Assistent für neue Datenbankprojekte wird angezeigt. Nun verwenden Sie den Assistenten, um das Datenbankprojekt zu konfigurieren und das ursprüngliche Datenbankschema zu importieren.

So konfigurieren Sie das Projekt und importieren ein Datenbankschema

  1. Klicken Sie auf Weiter, nachdem Sie die Willkommensseite gelesen haben.

  2. Da die Datenbank Northwind nur ein Schema enthält, klicken Sie auf Projekt nach Objekttyp sortieren.

    Wichtiger Hinweis:

    Sie können die Organisation eines Projekts nicht ändern, nachdem Sie es erstellt haben.

  3. Übernehmen Sie in Geben Sie das Standardschema für Objekte an, die Sie in Ihrem Datenbankprojekt erstellen den Standardwert dbo.

  4. Akzeptieren Sie auf der Seite Datenbankoptionen festlegen die Standardeinstellungen, und klicken Sie auf Weiter.

    Hinweis:

    Diese Optionen können nach dem Erstellen des Projekts bei Bedarf geändert werden. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren von Datenbankprojekten für das Erstellen und die Bereitstellung.

  5. Aktivieren Sie auf der Seite Datenbankschema importieren das Kontrollkästchen Vorhandenes Schema importieren.

  6. Klicken Sie unter Quelldatenbankverbindung auf die Verbindung, die dem Server und der Datenbank mit der Northwind-Datenbank entspricht. Wenn die Verbindung noch nicht vorhanden ist, klicken Sie auf Neue Verbindung, um sie zu erstellen. Wenn Sie keine Verbindung angeben, wird das Datenbankprojekt zwar erstellt, aber es wird kein Schema importiert.

    Hinweis:

    Sie können später ein Datenbankschema importieren, wenn das Datenbankprojekt noch keine Datenbankobjekte enthält. Weitere Informationen finden Sie unter Gewusst wie: Importieren eines Datenbankschemas.

  7. Übernehmen Sie die Standardimportoptionen, und klicken Sie auf Weiter.

  8. Klicken Sie auf der Seite Build/Bereitstellung konfigurieren unter Zielverbindung auf die Schaltfläche Durchsuchen, und geben Sie eine Verbindung mit dem Datenbankserver an, auf dem Sie die isolierte Entwicklungsumgebung erstellen möchten.

    Um eine neue lokale Instanz der Datenbank zu erstellen, geben Sie im Dialogfeld Verbindungseigenschaften unter Servername(local) ein, und klicken Sie auf Windows-Authentifizierung verwenden. Klicken Sie auf OK.

  9. Geben Sie in Zieldatenbankname den Namen TestNorthwind ein, falls dieser nicht bereits angegeben ist.

  10. Klicken Sie in Bereitstellungssortierreihenfolge auf Sortierreihenfolge des Servers verwenden.

    Durch diesen Schritt geben Sie an, dass die Zieldatenbank die Sortierreihenfolge des Datenbankprojekts verwendet.

  11. Deaktivieren Sie das Kontrollkästchen Inkrementelle Bereitstellung blockieren, wenn Datenverlust auftreten könnte.

    Da die isolierte Entwicklungsumgebung nur generierte Testdaten enthält, können Sie Datenverluste zulassen.

  12. Klicken Sie auf Fertig stellen, um das Datenbankprojekt zu erstellen und die Datenbank zu importieren.

So überprüfen Sie das resultierende Projekt

  1. Erweitern Sie im Projektmappen-Explorer den Knoten TestNorthwind, und erweitern Sie dann den untergeordneten Knoten Schemaobjekte.

  2. Überprüfen Sie die Unterknoten, die sich in der Hierarchie unter dem Knoten Schemaobjekte befinden.

    Der Projektmappen-Explorer enthält die Dateien, die die Objekte definieren, die sich im Schema der Datenbank befinden, aus der Sie sie importiert haben.

  3. Klicken Sie im Menü Ansicht auf Weitere Fenster, und zeigen Sie auf Schemaansicht.

  4. Erweitern Sie in der Schemaansicht den Knoten TestNorthwind.

  5. Überprüfen Sie die Unterknoten, die sich in der Hierarchie unter dem Knoten TestNorthwind befinden.

    Die Schemaansicht enthält die Objekte, die in den Dateien definiert sind, die im Projektmappen-Explorer angezeigt werden.

  6. Klicken Sie im Projektmappen-Explorer auf den Knoten TestNorthwind.

  7. Klicken Sie im Menü Projekt auf Eigenschaften von TestNorthwind.

  8. Klicken Sie auf der Eigenschaftenseite auf die Registerkarte Build.

  9. Geben Sie unter Zieldatenbankname den Namen TestNorthwind ein.

  10. Klicken Sie im Menü Datei auf Ausgewählte Elemente speichern.

  11. Klicken Sie im Projektmappen-Explorer auf das Projekt TestNorthwind.

  12. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.

  13. Klicken Sie im Menü Erstellen auf TestNorthwind bereitstellen.

    Hinweis:

    Jeder Entwickler gibt die Verbindungszeichenfolge für den Datenbankserver an, auf dem die jeweilige Kopie der Datenbank gehostet werden soll.

Jetzt geben Sie einen Datengenerierungsplan an, um die isolierte Entwicklungsdatenbank mit realistischen Testdaten zu füllen.

So erstellen Sie einen Datengenerierungsplan

  1. Erweitern Sie im Projektmappen-Explorer den Knoten TestNorthwind, und klicken Sie auf den Ordner Datengenerierungspläne.

  2. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

    Das Dialogfeld Neues Element hinzufügen wird angezeigt.

  3. Klicken Sie in der Liste Vorlagen auf Datengenerierungsplan.

  4. Geben Sie unter Name den Namen TestNW.dgen ein, und klicken Sie auf Hinzufügen.

    Dem Datenbankprojekt wird ein Datengenerierungsplan mit dem Namen TestNW hinzugefügt, der im Editor geöffnet wird. Das Datenbankschema wird in den Datengenerierungsplan importiert. Anschließend ändern Sie diesen Plan, um realistischere Testdaten zu generieren.

So definieren Sie den Datengenerierungsplan für die Tabelle Orders

  1. Klicken Sie im Datengenerierungsplan auf dbo.Orders.

  2. Zeigen Sie im Menü Daten auf Datengenerator, und klicken Sie auf Spaltendetails.

    Im Fenster Spaltendetails werden die Spalten der Tabelle Orders, deren Datentypen, der den einzelnen Spalten zugeordnete Standardgenerator und das Generatorergebnis angezeigt.

  3. Klicken Sie im Bereich Spaltendetails auf ShipCity, und legen Sie das Feld Generator auf Datengebundener Generator fest.

    Mit diesem Schritt geben Sie an, dass Sie diese Spalte mit den Ergebnissen einer Abfrage füllen möchten.

  4. Klicken Sie im Menü Ansicht auf Eigenschaftenfenster.

  5. Wechseln Sie im Eigenschaftenfenster zum Abschnitt Generator. Klicken Sie in der Connection Information-Eigenschaft auf die Verbindung, die der Datenbank entspricht, aus der Sie das Datenbankschema in einem vorangegangenen Verfahren importiert haben.

    Mit diesem Schritt wird die Datenbankverbindung angegeben, die zum Ausführen der Abfrage verwendet werden soll, mit der Daten für diese Spalte generiert werden.

  6. Legen Sie im Eigenschaftenfenster im Abschnitt Generator unter der Query-Eigenschaft die Abfragezeichenfolge auf SELECT * FROM Orders fest.

    Hinweis:

    Ändern Sie nicht den Startwert. Dieser Wert wird benötigt, um bestimmte Daten der Northwind-Datenbank zu generieren, die zu einem späteren Zeitpunkt dieser exemplarischen Vorgehensweise verwendet werden.

  7. Klicken Sie im Bereich Spaltendetails im Feld Generatorausgabe für ShipCity auf [OutputTable1].[ShipCity].

    Mit diesem Schritt wird die Spalte im Resultset ausgewählt, die Sie dieser Spalte zuordnen möchten.

  8. Speichern Sie den Datengenerierungsplan.

    Im nächsten Schritt erstellen Sie einen Datenbankkomponententest, der diese Daten verwendet.

Erstellen eines Datenbankkomponententests

So erstellen Sie einen Datenbankkomponententest

  1. Öffnen Sie in Visual Studio das Menü Test, und klicken Sie auf Neuer Test.

    Das Dialogfeld Neuen Test hinzufügen wird angezeigt.

  2. Klicken Sie auf Datenbankkomponententest.

  3. Geben Sie unter Testname den Namen SampleUnitTest ein.

  4. Klicken Sie unter Zu Testprojekt hinzufügen auf Neues Visual C#-Testprojekt erstellen, und klicken Sie dann auf OK.

    Das Dialogfeld Neues Testprojekt wird angezeigt.

  5. Behalten Sie den Standardnamen für das neue Testprojekt bei, und klicken Sie auf Erstellen.

    Das neue Testprojekt wird der vorhandenen Projektmappe TestNorthwind hinzugefügt. Das Projekt enthält eine Datei mit dem Namen SampleUnitTest.cs, die den Code einer neuen Testklasse für die Datenbankkomponententests enthält. Die Testklasse heißt SampleUnitTest und enthält eine neue Komponententestmethode mit dem Standardnamen DatabaseTest1. Sie können den Namen dieser Testmethode beibehalten oder ihn in einen aussagekräftigeren Namen ändern. Außerdem können Sie eine Anpassung vornehmen, sodass vorgesehene Testergebnisse zurückgegeben werden. Weitere Informationen finden Sie unter Gewusst wie: Öffnen eines Datenbankkomponententests zum Bearbeiten.

    Das Dialogfeld Konfiguration des Projekts 'TestProject' wird angezeigt.

  6. Wählen Sie unter Datenbankverbindungen in der ersten Dropdownliste die Datenbank TestNorthwind aus. Der Name wird im Format <Server>TestNorthwind.dbo angezeigt. Wenn dieser Name angezeigt wird, klickt Sie darauf, und fahren Sie mit Schritt 9 fort.

  7. Wenn die Datenbank TestNorthwind nicht angezeigt wird, klicken Sie auf Neue Verbindung.

    Das Dialogfeld Verbindungseigenschaften wird angezeigt.

  8. Geben Sie im Dialogfeld Verbindungseigenschaften den Server mit der Datenbank TestNorthwind an, und klicken Sie auf den zu verwendenden Authentifizierungstyp. Geben Sie unter Wählen Sie einen Datenbanknamen aus, oder geben Sie ihn ein den Namen TestNorthwind ein, und klicken Sie auf OK, um das Dialogfeld Verbindungseigenschaften zu schließen.

    Hinweis:

    Nachdem Sie eine Verbindung mit einer Datenbank hergestellt haben, wird deren Name im Dialogfeld Konfiguration des Projekts 'TestProject' unter Datenbankverbindungen angezeigt.

  9. Aktivieren Sie im Dialogfeld Konfiguration des Projekts 'TestProject' das Kontrollkästchen Verwenden Sie eine sekundäre Datenverbindung, um die Komponententests zu validieren.

    Hinweis:

    Sie haben soeben beiden Verbindungszeichenfolgen denselben Wert zugewiesen. In den meisten Fällen verwenden Sie eine Verbindungszeichenfolge, die für die Validierung über höhere Berechtigungen als für die Ausführung verfügt. Weitere Informationen finden Sie unter Übersicht über Verbindungszeichenfolgen und Berechtigungen.

  10. Aktivieren Sie das Kontrollkästchen Testdaten vor dem Ausführen von Komponententests generieren.

  11. Klicken Sie in der Dropdownliste auf den Datengenerierungsplan TestNW, und klicken Sie dann auf OK. Dieser Datengenerierungsplan wird auf die Datenbank TestNorthwind angewendet, wenn Sie den Komponententest ausführen.

    Hinweis:

    Sie können dieses Dialogfeld auch verwenden, um die Schemabereitstellung zu konfigurieren. Weitere Informationen finden Sie unter Gewusst wie: Konfigurieren der Ausführung von Datenbankkomponententests.

    Wenn das Dialogfeld Konfiguration des Projekts 'TestProject' geschlossen ist, wird der Datenbankkomponententest-Designer angezeigt.

    Für jede hinzugefügte Testbedingung wird in einer Quellcodedatei C#- oder Visual Basic-Code erstellt.

  12. Erstellen Sie das Testprojekt, indem Sie im Projektmappen-Explorer mit der rechten Maustaste darauf klicken und dann auf Erstellen klicken.

  13. Fügen Sie einen weiteren Komponententest hinzu, indem Sie auf der Navigationsleiste des Datenbankkomponententest-Designers auf Test hinzufügen (+) klicken.

    Das Dialogfeld Namen für Datenbanktest angeben wird angezeigt.

  14. Behalten Sie den Standardnamen für die Testmethode bei, und klicken Sie auf OK. Hierdurch wird dem vorhandenen Projekt ein weiterer Komponententest hinzugefügt. Dieser Komponententest wird als neue Testmethode in der SampleUnitTest-Klasse erstellt, die Sie zuvor erstellt haben.

    Jetzt können Sie die eigentliche Testlogik schreiben.

So schreiben Sie den Datenbankkomponententest

  1. Klicken Sie auf der Navigationsleiste des Datenbankkomponententest-Designers auf DatabaseTest1, und stellen Sie sicher, dass in der angrenzenden Dropdownliste der Eintrag Test ausgewählt ist. Hierdurch wird es Ihnen ermöglicht, das Testskript für die Testaktion im Komponententest DatabaseTest1 zu erstellen.

  2. Fügen Sie die folgenden T-SQL-Anweisungen im T-SQL-Editor hinzu:

    SELECT * from Orders where ShipCity = 'Seattle'
    
  3. Klicken Sie im Bereich Testbedingungen auf die Testbedingung mit dem Typ Nicht eindeutig, und löschen Sie diese, indem Sie auf Testbedingung löschen (x) klicken.

  4. Fügen Sie eine Testbedingung für die Zeilenanzahl hinzu, indem Sie in der Liste im Bereich Testbedingungen auf Zeilenanzahl und dann auf Testbedingung hinzufügen (+) klicken.

  5. Legen Sie im Eigenschaftenfenster die Eigenschaft Zeilenanzahl auf 1fest.

  6. Klicken Sie im Menü Datei auf Alle speichern.

    Jetzt können Sie den Test ausführen.

So führen Sie den Datenbankkomponententest aus

  1. Zeigen Sie im Menü Test auf Fenster, und klicken Sie dann auf Testansicht.

    Im Fenster Testansicht werden zwei Tests aufgelistet. In dieser exemplarischen Vorgehensweise haben Sie bereits den Test mit dem Namen DatabaseTest1 erstellt und diesem Test T-SQL-Anweisungen und eine Testbedingung hinzugefügt. Der Test mit dem Namen DatabaseTest2 ist leer.

  2. Klicken Sie mit der rechten Maustaste auf DatabaseTest1, und klicken Sie auf Auswahl ausführen.

    Visual Studio Team System Database Edition verwendet den angegebenen privilegierten Kontext, um eine Verbindung zur Datenbank herzustellen und den Datengenerierungsplan anzuwenden. Database Edition wechselt dann zum Ausführungskontext, bevor das T-SQL-Skript im Test ausgeführt wird. Anschließend werden die Ergebnisse des T-SQL-Skripts im Hinblick auf die in der Testbedingung angegebenen Ergebnisse von Database Edition ausgewertet, und im Fenster Testergebnisse wird entweder das Ergebnis Erfolgreich oder Fehler angezeigt.

  3. Überprüfen Sie das Ergebnis im Fenster Testergebnisse.

    Der Test war erfolgreich, d. h., die Ausführung der SELECT-Anweisung gibt eine Zeile zurück.

    Hinweis:

    Wenn Sie den Startwert für [Orders][ShipCity] im Datengenerierungsplan oder die Anzahl der zu generierenden Zeilen ändern, kann dieser Test zu einem Fehler führen. Wenn Sie mit dem Startwert 5 50 Datenzeilen aus Northwind generiert haben, enthält eines der Ergebnisse den Wert Seattle für das Feld ShipCity.

Nächste Schritte

In einem typischen Projekt werden zusätzliche Komponententests definiert, um zu überprüfen, dass alle kritischen Datenbankobjekte ordnungsgemäß arbeiten. Wenn die Reihe von Tests abgeschlossen ist, können Sie diese Tests in die Versionskontrolle einchecken, um sie für das restliche Team freizugeben.

Nachdem Sie eine Baseline festgelegt haben, können Sie Datenbankobjekte erstellen und ändern und anschließend entsprechende Tests definieren, mit denen überprüft wird, ob sich eine Änderung auf das vorhandene Verhalten auswirkt.

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines leeren Datenbankkomponententests

Gewusst wie: Konfigurieren der Ausführung von Datenbankkomponententests

Konzepte

Übersicht über die Terminologie der Database Edition

Weitere Ressourcen

Entwerfen von Datenbankkomponententests

Anpassen von Datenbankkomponententests in Visual Basic oder Visual C#