Teilen über


Schreiben von Tests mit MSTest

Dieser Artikel enthält Informationen zu den von MSTest verwendeten APIs und Konventionen, um Sie beim Schreiben und Gestalten Ihrer Tests zu unterstützen.

Attribute

MSTest verwendet benutzerdefinierte Attribute, um Tests zu identifizieren und anzupassen.

Für einen besseren Überblick über das Testframework werden die Member des Microsoft.VisualStudio.TestTools.UnitTesting-Namespace in diesem Abschnitt in Gruppen verwandter Funktionen strukturiert.

Hinweis

Attributelemente, deren Namen mit der Zeichenfolge „Attribute“ enden, können mit oder ohne „Attribute“ am Ende verwendet werden. Attribute mit parameterlosem Konstruktor können mit oder ohne Klammer geschrieben werden. Die folgenden Codebeispiele funktionieren identisch:

[TestClass()]

[TestClassAttribute()]

[TestClass]

[TestClassAttribute]

MSTest-Attribute sind in folgende Kategorien unterteilt:

Assertionen

Verwenden Sie die Assert-Klassen des Microsoft.VisualStudio.TestTools.UnitTesting-Namespace, um bestimmte Funktionen zu überprüfen. Eine Testmethode 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.

MSTest-Assertionen sind in die folgenden Klassen unterteilt:

Die TestContext-Klasse

Die TestContext-Klasse bietet kontextbezogene Informationen und Unterstützung für die Testausführung, wodurch das Abrufen von Informationen über die Testausführung und das Bearbeiten von Aspekten der Umgebung erleichtert wird. Sie ist im Microsoft.VisualStudio.TestTools.UnitTesting-Namespace definiert und ist bei Verwendung des MSTest Frameworks verfügbar.

Weitere Informationen finden Sie unter Zugreifen auf das TestContext-Objekt oder Die TestContext-Mitglieder.

Testen privater Member

Sie können einen Test für eine private Methode generieren. Dabei wird eine private Accessor-Klasse erstellt, die ein Objekt der PrivateObject-Klasse instanziiert. Bei der PrivateObject-Klasse handelt es sich um eine Wrapperklasse, die im Rahmen des Prozesses für den privaten Accessor Reflektionen verwendet. Die PrivateType-Klasse ist ähnlich, unterscheidet sich jedoch insofern, als sie zum Aufrufen von privaten statischen Methoden statt von privaten Instanzmethoden verwendet wird.