Freigeben über


Verwenden von Assert-Klassen für Komponententests

Verwenden Sie die Assert-Klassen des Microsoft.VisualStudio.TestTools.UnitTesting-Namespace, um bestimmte Funktionen zu überprüfen. Eine Komponententestmethode führt den Code einer Methode im Code Ihrer Anwendung aus. Ob sich der Code ordnungsgemäß verhält, wird jedoch nur angegeben, wenn Sie Assert-Anweisungen einbinden.

Arten von Assert-Vorgängen

Der Microsoft.VisualStudio.TestTools.UnitTesting-Namespace stellt mehrere Arten von Assert-Klassen bereit.

In Ihrer Testmethode können Sie sämtliche Methoden der Klasse Microsoft.VisualStudio.TestTools.UnitTesting.Assert aufrufen, wie z.B. Assert.AreEqual. Die Klasse Assert stellt eine Vielzahl von Methoden bereit, für die in vielen Fällen mehrere Überladungen vorhanden sind.

Vergleichen von Zeichenfolgen und Sammlungen

Verwenden Sie die Klasse CollectionAssert, um Objektsammlungen zu vergleichen und den Zustand einer Sammlung zu überprüfen.

Verwenden Sie die Klasse StringAssert, um Zeichenfolgen zu vergleichen und zu überprüfen. Diese Klasse enthält eine Vielzahl von nützlichen Methoden, wie z.B. StringAssert.Contains, StringAssert.Matches und StringAssert.StartsWith.

Ausnahmen

Die Ausnahme AssertFailedException wird immer dann ausgelöst, wenn ein Test fehlschlägt. Ein Test schlägt fehl, wenn eine Zeitüberschreitung auftritt, eine unerwartete Ausnahme ausgelöst wird oder der Test eine Assert-Anweisung enthält, die zum Ergebnis Fehler führt.

AssertInconclusiveException wird immer dann ausgelöst, wenn ein Test das Ergebnis Nicht eindeutig erzeugt. In der Regel fügen Sie eine Assert.Inconclusive-Anweisung zu einem Test hinzu, an dem Sie noch arbeiten, um anzuzeigen, dass der Test noch nicht zur Ausführung bereit ist.

Hinweis

Eine andere Möglichkeit besteht darin, einen noch nicht zur Ausführung geeigneten Test mit dem Attribut IgnoreAttribute zu kennzeichnen. Dies hat jedoch den Nachteil, dass Berichte über die Anzahl der noch zu implementierenden Tests nur noch mit einigem Aufwand generiert werden können.

Wenn Sie eine neue Assert-Ausnahmeklasse schreiben, kann die Ausnahme leichter als Assert-Fehler erkannt werden, wenn die Klasse von der Basisklasse UnitTestAssertException erbt. Andernfalls lassen sich Assert-Ausnahmen nicht eindeutig von unerwarteten Ausnahmen unterscheiden, die ggf. durch den Test- oder Produktionscode ausgelöst werden.

Um zu überprüfen, ob eine Ausnahme tatsächlich wie erwartet durch eine Methode in Ihrem Anwendungscode ausgelöst wird, verwenden Sie die Assert.ThrowsException-Methode.

Siehe auch