Freigeben über


Schreiben von Komponententests mit dem Komponententestframework

Das Komponententestframework unterstützt Komponententests in Visual Studio. Verwenden Sie beim Schreiben von Komponententests die Klassen und Member im Microsoft.VisualStudio.TestTools.UnitTesting-Namespace. Diese Klassen können Sie beim Schreiben eigener Komponententests verwenden und auch zum Bearbeiten von Komponententests, die zuvor aus zu testendem Code generiert wurden.

Gruppen von Elementen

Um Ihnen einen besseren Überblick über das Komponententestframework zu geben, werden in diesem Abschnitt die Elemente des UnitTesting-Namespace anhand ihrer Funktionen in Gruppen unterteilt.

Tipp

Attributelemente, deren Namen auf die Zeichenfolge Attribute enden, können mit oder ohne diese Zeichenfolge verwendet werden. Beispielsweise besitzen die folgenden beiden Codebeispiele dieselbe Funktion:

[TestClass()]

[TestClassAttribute()]

Elemente für datengesteuerte Tests

Verwenden Sie die folgenden Elemente zum Einrichten datengesteuerter Komponententests. Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines datengesteuerten Komponententests und Exemplarische Vorgehensweise: Verwenden einer Konfigurationsdatei zum Definieren einer Datenquelle.

Attribute zur Einrichtung einer Aufrufreihenfolge

Ein um eines der folgenden Attribute ergänztes Codeelement wird zu dem von Ihnen angegebenen Zeitpunkt aufgerufen. Weitere Informationen finden Sie unter Aufbau eines Komponententests.

Für Assemblys

AssemblyInitialize und AssemblyCleanup werden unmittelbar nach dem Laden der Assembly und vor dem Entladen der Assembly aufgerufen.

Für Klassen

ClassInitialize und ClassCleanup werden unmittelbar nach dem Laden der Klasse und vor dem Entladen der Klasse aufgerufen.

Für Testmethoden

Attribute zur Identifikation von Testklassen und Testmethoden

Jede Testklasse muss das TestClass-Attribut, jede Testmethode das TestMethod-Attribut aufweisen. Weitere Informationen finden Sie unter Aufbau eines Komponententests.

Assert-Klassen und zugehörige Ausnahmen

Mit Komponententests kann das Verhalten bestimmter Anwendungsfunktionen überprüft werden. Zu diesem Zweck fügen Sie verschiedene Assert-Anweisungen, Ausnahmen oder Attribute in den Test ein. Weitere Informationen finden Sie unter Verwenden der Assert-Klassen.

Die TestContext-Klasse

Die folgenden Attribute und die zugehörigen Werte werden im Eigenschaftenfenster von Visual Studio für einzelne Testmethoden angezeigt. Auf diese Attribute sollte nicht im Code für den Komponententest zugegriffen werden. Stattdessen wirken sie sich auf die Art und Weise aus, in der der Komponententest verwendet oder ausgeführt wird – von Ihnen über die IDE von Visual Studio oder vom Visual Studio-Testmodul. Beispielsweise werden einige dieser Attribute als Spalten im Fenster Test Manager und im Fenster Testergebnisse angezeigt, sodass Sie sie verwenden können, um Tests und Testergebnisse zu gruppieren und zu sortieren. Zu diesen Attributen zählt TestPropertyAttribute, mit dem einem Komponententest beliebige Metadaten hinzugefügt werden können. So können Sie damit z. B. den Namen eines Testlaufs speichern, der mit dem betreffenden Test durchgeführt wird, indem Sie den Komponententest mit [TestProperty("TestPass", "Accessibility")] kennzeichnen. Sie können so auch einen Angabe des betreffenden Testtyps speichern: [TestProperty("TestKind", "Localization")]. Die mit diesem Attributs erstellte Eigenschaft und der zugewiesene Eigenschaftswert werden im Eigenschaftenfenster von Visual Studio unter der Überschrift Testspezifisch angezeigt.

Testkonfigurationsklassen

Attribute zum Generieren von Berichten

Die Attribute in diesem Abschnitt stellen eine Beziehung zwischen der Testmethode, für die sie angegeben wurden, und Entitäten in der Projekthierarchie eines Team Foundation Server-Teamprojekts her.

Mit privaten Accessoren verwendete Klassen

Wie unter Verwenden von Publicize zum Erstellen eines privaten Accessors beschrieben, können Sie einen Komponententest für eine private Methode generieren. Bei dieser Generierung wird eine private Accessorklasse erstellt, die ein Objekt der PrivateObject-Klasse instanziiert. Die PrivateObject-Klasse ist eine Wrapperklasse, die Reflektion als Teil des privaten Accessorprozesses verwendet. Sie ähnelt der PrivateType-Klasse, diese wird jedoch nicht zum Aufrufen privater Instanzmethoden, sondern zum Aufrufen privater statischer Methoden verwendet.

Siehe auch

Referenz

Microsoft.VisualStudio.TestTools.UnitTesting