Freigeben über


Gewusst wie: Erstellen und Ausführen eines Komponententests

Komponententests ermöglichen es Entwicklern und Testern, die Methoden der Klassen in C#-, Visual Basic .NET- und C++-Projekten schnell auf logische Fehler hin zu überprüfen. Ein Komponententest kann einmal erstellt und jedes Mal ausgeführt werden, wenn der Quellcode geändert wurde, um sicherzustellen, dass keine Fehler eingebaut wurden.

In diesem Thema erfahren Sie, wie mit den Komponententesttools in Microsoft Visual Studio 2010 automatisch das Skelett für einen Komponententest aus vorhandenem Code generiert wird, wie die Validierung zum Auffüllen des Skeletts hinzugefügt wird, wie eine Testkategorie und eine Testliste erstellt werden und der Test ausgeführt wird und wie die Ergebnisse zur Codeabdeckung gelesen werden.

Eine Beschreibung der Teile eines Komponententests finden Sie unter Aufbau eines Komponententests.

Beispiel für einen Komponententest

Dieses Beispiel basiert auf dem Thema Exemplarische Vorgehensweise: Erstellen und Ausführen von Komponententests.

In der folgenden Abbildung wird das Dialogfeld Komponententests erstellen angezeigt. Es wird geöffnet, wenn Sie mit der rechten Maustaste in eine Codedatei mit Methoden klicken und dann auf Komponententests erstellen klicken. Komponententests werden für alle Methoden generiert, die Sie in der Liste Typen des Dialogfelds auswählen.

Die folgende Abbildung veranschaulicht, dass in diesem Beispiel Komponententests für die Credit-Methode und die Debit-Methode erstellt werden.

Dialogfeld "Komponententests erstellen"

Nachdem Sie die Komponententests generiert haben, wird eine Codedatei erstellt, und Änderungen werden im Projektmappen-Explorer angezeigt.

In der folgenden Abbildung werden die Ergebnisse der Erstellung eines Komponententests angezeigt.

Von Art-Status benötigter Titelbesitzer

  1. Für jede Methode, die Sie im Dialogfeld "Komponententest erstellen" auswählen, wird ein separater Komponententest erstellt. In diesem Beispiel haben wir Komponententests für die Credit-Methode und die Debit-Methode erstellt.

  2. Jeder generierte Komponententest verfügt über leere Variablen und eine Assert-Platzhalteranweisung. Die standardmäßige Assert-Platzhalteranweisung ist normalerweise die Assert.Inconclusive-Anweisung.

  3. Um den Test sinnvoll zu gestalten, müssen Sie die Variablen initialisieren und den Platzhalter durch eine entsprechende Assert-Anweisung ersetzen. Bei diesem Beispiel haben wir den Credit-Komponententest so belassen, wie er generiert wurde. Die Variablen wurden jedoch initialisiert, und die Assert-Anweisung in der Debit-Testmethode wurde ersetzt.

  4. Zu Beginn der Erstellung von Komponententests wird ein Testprojekt in der Projektmappe erstellt.

  5. Für jede getestete Klasse wird eine separate Komponententestdatei im Testprojekt erstellt. In diesem Beispiel gehören die zwei getesteten Methoden zur gleichen Klasse. Deshalb gibt es nur eine Komponententestdatei, "BankAccountTest.cs".

  6. Nachdem Sie die Tests ausgeführt haben, werden die Ergebnisse im Fenster Testergebnisse angezeigt.

Erstellen eines Komponententests

Das Erstellen eines Komponententests besteht aus zwei Phasen.

In der ersten Phase wird eine Komponententestdatei erstellt. Sie enthält eine Skelettversion einer Testmethode für jede Methode im Code, die Sie testen. Jede Skeletttestmethode wird mit leeren Variablen und einer Assert-Platzhalteranweisung generiert.

In der zweiten Phase werden die Variablen initialisiert, und die Assert-Platzhalteranweisung wird entsprechend ersetzt.

Generieren der Skelette für die Komponententests

Über das Dialogfeld Komponententests erstellen generieren Sie Komponententests für beliebige oder alle Methoden in dem Code, den Sie testen.

Tipp

Obwohl Methoden, die mit Attributen wie "private", "internal" oder "friend" gekennzeichnet sind, in der Regel nicht außerhalb der Klasse dieser Methoden sichtbar sind, ermöglichen die Tools von Microsoft Visual Studio 2010 den Komponententests den Zugriff auf diese Methoden. Weitere Informationen zur Funktionsweise finden Sie unter Komponententests für Private-, Internal- und Friend-Methoden.

So generieren Sie das Skelett für den Komponententest

  1. Öffnen Sie den Code, der getestet werden soll, im Fenster Code-Editor von Visual Studio.

  2. (Nur für ASP.NET-Dienste) Wenn Sie einen ASP.NET-Webdienst testen, stellen Sie sicher, dass das Projekt eine ASPX-Seite enthält. Wenn Sie einen Komponententest für einen Webdienst in einem Projekt erstellen, das keine ASPX-Seite enthält, erhalten Sie eine Fehlermeldung, wenn Sie versuchen, den Test auszuführen. Weitere Informationen hierzu finden Sie unter Komponententests für ASP.NET-Webdienste.

  3. Klicken Sie mit der rechten Maustaste auf den Namespace, die Klasse oder die Methode, die Sie testen möchten, und klicken Sie dann auf Komponententests erstellen.

  4. Aktivieren Sie im Dialogfeld Komponententests erstellen die Kontrollkästchen für alle Methoden, die Sie der Komponententestdatei hinzufügen möchten.

  5. (Optional) Klicken Sie auf Einstellungen, um die Standardeinstellungen für die von Ihnen erstellten Komponententests zu ändern. Dies sind Visual Studio-Einstellungen. Sie gelten für alle Komponententests, die Sie erstellen, bis Sie die Einstellungen erneut ändern.

    • Namenseinstellungen: Mit diesen Optionen können Sie die Benennung von Testdateien, Testklassen und Testmethoden während der Erstellung von Komponententests anpassen.

    • Alle Testergebnisse standardmäßig als "Nicht eindeutig" markieren: Aktivieren Sie dieses Kontrollkästchen, um für jede Testmethode eine Assert.Inconclusive()-Anweisung als Platzhalter-Assert bereitzustellen. Deaktivieren Sie das Kontrollkästchen, um Platzhalter-Asserts auszuschließen.

    • Dokumentationskommentare aktivieren: Aktivieren Sie dieses Kontrollkästchen, wenn jeder Testmethode Platzhalterkommentare hinzugefügt werden sollen. Deaktivieren Sie das Kontrollkästchen, um Platzhalterkommentare auszuschließen.

    • InternalsVisibleTo-Attribut beachten: Aktivieren Sie dieses Kontrollkästchen, um zu ermöglichen, dass als Friend oder Internal markierte Methoden als öffentliche Methoden behandelt werden (empfohlen). Deaktivieren Sie das Kontrollkästchen, um sie mit einem privaten Accessor zu testen. Weitere Informationen zu privaten Accessoren finden Sie unter Komponententests für Private-, Internal- und Friend-Methoden.

  6. (Optional) Um Tests für Methoden in Assemblys hinzuzufügen, für die Sie nicht über den Quellcode verfügen, klicken Sie auf Assembly hinzufügen. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines Komponententests ohne Quellcode.

  7. Führen Sie im Feld Ausgabeprojekt eine der folgenden Vorgehensweisen aus:

    • Wählen Sie eine Sprache für das neue Projekt aus, und klicken Sie dann auf OK, um ein neues Testprojekt zu erstellen. Das Dialogfeld Neues Testprojekt wird angezeigt. Sie können dem Projekt einen Namen geben oder den Standardnamen annehmen und dann auf Erstellen klicken.

    • Um die Methoden , die im Dialogfeld Komponententests erstellen ausgewählt wurden, den Komponententestdateien in einem vorhandenen Testprojekt anzufügen, wählen Sie das Projekt in der Dropdownliste aus, und klicken Sie dann auf OK.

Hinzufügen einer Validierung zu den Komponententests

Jede Testmethode in einer Komponententestdatei wird mit leeren Variablen und einer Assert-Platzhalteranweisung generiert. Sie können einen solchen Test ausführen, aber da es keine tatsächlichen Daten gibt, können Sie nicht sehen, ob sich die Methode gemäß den Erwartungen verhält. Initialisieren Sie die Variablen, und ersetzen Sie die Assert-Platzhalteranweisung durch eine für diese Methode geeignete Anweisung (häufig die Assert.AreEqual-Anweisung), um einen aussagekräftigen Test zu erhalten.

So fügen Sie den Komponententests eine Validierung hinzu

  1. Öffnen Sie die Komponententestdatei, und suchen Sie nach dem Komponententest, für den Sie die Variablen initialisieren möchten.

  2. Suchen Sie die Variablenzuweisungen im Komponententest.

    In neu generierten Tests sind Variablenzuweisungen mit TODO-Anweisungen gekennzeichnet, die Sie darauf aufmerksam machen, dass die Zuweisungen angepasst werden müssen. Beim folgenden Beispiel handelt es sich um eine typische Zuweisung, die bearbeitet werden muss:

    string target.owner = null; // TODO: Initialize to an appropriate value

  3. Weisen Sie jeder Variable einen geeigneten Wert zu. Ein Beispiel für das Zuweisen von entsprechenden Variablen finden Sie in der Vorgehensweise "Komponententest durchführen und bearbeiten" in der Exemplarische Vorgehensweise: Erstellen und Ausführen von Komponententests.

    Tipp

    Sie können die Komponententests mithilfe einer Reihe von unterschiedlichen Werten ausführen, indem Sie einen datengesteuerten Komponententest erstellen. Ein datengesteuerter Komponententest ist ein Komponententest, der für jede Zeile einer Datenquelle wiederholt ausgeführt wird. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen eines datengesteuerten Komponententests.

  4. Suchen und bearbeiten Sie die Assert-Anweisungen im Komponententest. Weitere Informationen über die verfügbaren Assert-Anweisungen finden Sie unter Verwenden der Assert-Klassen.

  5. (Optional) Fügen Sie den Komponententests Setup- und Bereinigungscode mit der [TestInitialize()]-Methode und der [TestCleanup()] -Methode des Microsoft.VisualStudio.TestTools.UnitTesting-Namespaces hinzu. Wenn Sie einen Komponententest generieren, wird der Komponententestdatei der Bereich "Zusätzliche Testattribute" hinzugefügt. Erweitern Sie diesen Abschnitt, um auskommentierte Methoden anzuzeigen, mit denen die Initialisierung und Bereinigung aufgenommen werden kann.

(Optional) Erstellen einer Testkategorie

Sie können die automatisierten Tests verwalten, indem Sie sie in Testkategorien einteilen. Weitere Informationen hierzu finden Sie unter Definieren von Testkategorien zum Gruppieren von Tests.

Tipp

Testkategorien werden vor Testlisten empfohlen. Mit Testkategorien können Sie Testgruppen auf Grundlage der zugewiesenen Kategorien ausführen, ohne Testlisten führen zu müssen.

So erstellen Sie eine neue Testkategorie

  1. Öffnen Sie das Fenster Testansicht.

  2. Wählen Sie einen Test aus.

  3. Klicken Sie im Eigenschaftenbereich auf Testkategorien und anschließend in der äußerst rechten Spalte auf die Auslassungspunkte (…).

  4. Geben Sie im Fenster Testkategorie im Feld Neue Kategorie hinzufügen einen Namen für die neue Testkategorie ein.

  5. Klicken Sie auf Hinzufügen und anschließend auf OK.

    Die neue Testkategorie wird dem Test zugewiesen und steht für andere Tests über deren Eigenschaften zur Verfügung.

(Optional) Erstellen einer Testliste

Mit Testlisten können Sie Komponententests in logische Gruppen einteilen. Die Hauptvorteile durch das Hinzufügen von Komponententests zu einer Testliste ergeben sich daraus, dass Sie Tests über mehrere Komponententestdateien ausführen können. Sie können sie außerdem als Teil eines Builds ausführen und die Listen dazu verwenden, eine Eincheckrichtlinie zu erzwingen. Weitere Informationen zu Testlisten finden Sie unter Definieren von Testlisten zum Gruppieren von Tests.

Tipp

Testkategorien werden vor Testlisten empfohlen. Mit Testkategorien können Sie Testgruppen auf Grundlage der zugewiesenen Kategorien ausführen, ohne Testlisten führen zu müssen.

So erstellen Sie eine Testliste

  1. Klicken Sie im Menü Test auf Neue Testliste erstellen.

  2. Geben Sie im Dialogfeld Neue Testliste erstellen einen Namen für die Liste ein, fügen Sie eine Beschreibung hinzu, wählen Sie den Speicherort der Testliste aus, und klicken Sie dann auf OK.

  3. Um die verfügbaren Tests anzuzeigen, klicken Sie im Fenster Testlisten-Editor auf Alle geladenen Tests.

  4. Ziehen Sie jeden Komponententest, der hinzugefügt werden soll, aus dem Hauptfenster zur Testliste.

Ausführen eines Komponententests

Nachdem die Komponententests erstellt wurden, können Sie diese jederzeit ausführen. Diese Vorgehensweise stellt eine Methode zum Ausführen von Komponententests vor. Weitere Informationen zu alternativen Methoden, z. B. zum Verwenden von Tastenkombinationen oder der Befehlszeile, finden Sie unter Gewusst wie: Ausführen von automatisierten Tests in Microsoft Visual Studio.

So führen Sie einen Komponententest aus

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

  2. (Optional) Gehen Sie folgendermaßen vor, wenn Sie Codeabdeckungsinformationen sammeln möchten:

    1. Zeigen Sie im Menü Test auf Testeinstellungen bearbeiten, und klicken Sie dann auf die Testeinstellungen für den aktuellen Testlauf.

    2. Klicken Sie im Dialogfeld Testeinstellungen auf Daten und Diagnose.

    3. Wählen Sie unter Rolle die gewünschte Rolle für die Testausführung aus.

    4. Aktivieren Sie das Kontrollkästchen Codeabdeckung, und klicken Sie anschließend auf Konfigurieren.

    5. Aktivieren Sie ein oder mehrere Kontrollkästchen, um die Elemente auszuwählen, für die Informationen zur Codeabdeckung gesammelt werden sollen.

    6. Klicken Sie im Dialogfeld mit den Codeabdeckungsdetails auf OK.

    7. Klicken Sie im Dialogfeld Testeinstellungen auf Übernehmen und anschließend auf Schließen.

  3. Wählen Sie im Fenster Testansicht einen oder mehrere Tests aus. Wenn Sie mehrere Tests auswählen möchten, halten Sie die STRG-TASTE gedrückt, während Sie auf die Tests klicken.

  4. Klicken Sie in der Symbolleiste des Fensters Testansicht auf Auswahl ausführen. Die Tests werden ausgeführt, und das Fenster Testergebnisse wird geöffnet.

  5. (Optional) Klicken Sie zum Anzeigen von Testdetails im Fenster Testergebnisse mit der rechten Maustaste auf einen Test, und klicken Sie anschließend auf "Testergebnisdetails anzeigen".

  6. (Optional) Klicken Sie im Detailfenster unter Fehlerstapelüberwachung auf den Link eines Fehlers, um den Bereich der Komponententestdatei zu suchen, die den Fehler enthält.

Weitere Informationen zum Verständnis der Testergebnisse finden Sie unter Überprüfen von Testergebnissen.

(Optional) Anzeigen der Codeabdeckung

Wenn Sie sich für das Sammeln von Informationen zur Codeabdeckung entschieden haben, können Sie das Fenster Codeabdeckung öffnen, um anzuzeigen, welcher Prozentsatz der Methoden im getesteten Code durch die Komponententests abgedeckt wurde. Informationen zum Überprüfen der Codeabdeckung von Tests, die bereits ausgeführt wurden, und Informationen zum Verwalten der Ergebnisse der Codeabdeckung finden Sie unter Übersicht über Codeabdeckungsdaten.

So zeigen Sie die Codeabdeckung für Komponententests an

  1. Klicken Sie im Fenster Testergebnisse in der Symbolleiste auf Codeabdeckungsergebnisse anzeigen. Das Fenster muss möglicherweise vergrößert werden, damit die Schaltfläche sichtbar wird.

  2. Das Fenster Codeabdeckungsergebnisse wird geöffnet.

    In diesem Fenster wird angezeigt, in welchem Umfang diese Methode getestet wurde.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Webleistungstests, Komponententests und Tests der codierten UI mit dem Auslastungstest-Editor zu einem Auslastungstestszenario

How to: Remove Web Performance Tests, Unit and Coded UI Tests from a Load Test Scenario Using the Load Test Editor

Konzepte

Aufbau eines Komponententests

Komponententests und C++

Komponententests für generische Methoden

Komponententests für ASP.NET-Webdienste