Freigeben über


ExpectedExceptionAttribute-Klasse

Gibt an, dass bei der Testmethodenausführung eine Ausnahme erwartet wird. Diese Klasse kann nicht vererbt werden.

Vererbungshierarchie

Object
  Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionBaseAttribute
      Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute

Namespace:  Microsoft.VisualStudio.TestTools.UnitTesting
Assembly:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Syntax

'Declaration
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False, Inherited := True)> _
Public NotInheritable Class ExpectedExceptionAttribute _
    Inherits ExpectedExceptionBaseAttribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class ExpectedExceptionAttribute : ExpectedExceptionBaseAttribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false, Inherited = true)]
public ref class ExpectedExceptionAttribute sealed : public ExpectedExceptionBaseAttribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false, Inherited = true)>]
type ExpectedExceptionAttribute =  
    class 
        inherit ExpectedExceptionBaseAttribute 
    end
public final class ExpectedExceptionAttribute extends ExpectedExceptionBaseAttribute

Der ExpectedExceptionAttribute-Typ macht die folgenden Member verfügbar.

Konstruktoren

  Name Beschreibung
Öffentliche Methode ExpectedExceptionAttribute(Type) Initialisiert eine neue Instanz der ExpectedExceptionAttribute-Klasse mit einer erwarteten Ausnahme.
Öffentliche Methode ExpectedExceptionAttribute(Type, String) Initialisiert eine neue Instanz der ExpectedExceptionAttribute-Klasse mit einem erwarteten Ausnahmetyp und einer Meldung, die die Ausnahme beschreibt.

Zum Seitenanfang

Eigenschaften

  Name Beschreibung
Öffentliche Eigenschaft AllowDerivedTypes
Öffentliche Eigenschaft ExceptionType Ruft den erwarteten Ausnahmetyp ab.
Geschützte Eigenschaft NoExceptionMessage Infrastruktur. (Von ExpectedExceptionBaseAttribute geerbt.)
Geschützte Eigenschaft TestContext Infrastruktur. (Von ExpectedExceptionBaseAttribute geerbt.)
Öffentliche Eigenschaft TypeId Bei Implementierung in einer abgeleiteten Klasse wird ein eindeutiger Bezeichner für dieses Attribute abgerufen. (Von Attribute geerbt.)

Zum Seitenanfang

Methoden

  Name Beschreibung
Öffentliche Methode Equals Infrastruktur. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist. (Von Attribute geerbt.)
Öffentliche Methode GetHashCode Gibt den Hashcode für diese Instanz zurück. (Von Attribute geerbt.)
Öffentliche Methode GetType Ruft den Type der aktuellen Instanz ab. (Von Object geerbt.)
Öffentliche Methode IsDefaultAttribute Beim Überschreiben in einer abgeleiteten Klasse wird angegeben, ob der Wert dieser Instanz der Standardwert für die abgeleitete Klasse ist. (Von Attribute geerbt.)
Öffentliche Methode Match Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Von Attribute geerbt.)
Öffentliche Methode ToString Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Von Object geerbt.)
Geschützte Methode Verify Infrastruktur. (Von ExpectedExceptionBaseAttribute geerbt.)

Zum Seitenanfang

Explizite Schnittstellenimplementierungen

  Name Beschreibung
Explizite SchnittstellenimplementierungPrivate Methode System#Runtime#InteropServices#_Attribute#GetIDsOfNames Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode System#Runtime#InteropServices#_Attribute#GetTypeInfo Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Von Attribute geerbt.)
Explizite SchnittstellenimplementierungPrivate Methode System#Runtime#InteropServices#_Attribute#Invoke Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Von Attribute geerbt.)

Zum Seitenanfang

Hinweise

Dieses Attribut wird verwendet, um zu testen, ob eine erwartete Ausnahme ausgelöst wird. Die Testmethode ist erfolgreich, wenn die erwartete Ausnahme ausgelöst wird. Der Test schlägt fehl, wenn die ausgelöste Ausnahme von der erwarteten Ausnahme erbt.

Wenn ein Test über sowohl ein ExpectedException-Attribut als auch eine Assert-Anweisung verfügt, kann der Test aufgrund einer dieser Komponenten fehlschlagen. Um zu ermitteln, ob das Attribut oder die Anweisung den Fehler verursacht, doppelklicken Sie zum Öffnen der Seite Ergebnisdetails für den Test auf das Testergebnis. Weitere Informationen zu Testergebnissen finden Sie unter Test Results Reported.

Dieses Attribut kann für eine Methode angegeben werden. Pro Methode kann es nur eine Instanz dieses Attributs geben.

Weitere Informationen zum Verwenden von Attributen finden Sie unter Erweitern von Metadaten mithilfe von Attributen.

Beispiele

Die folgende Klasse enthält die zu testende Methode:

using System;

namespace MyCSNamespace
{
    public class DivisionClass
    {
        public int Divide(int numerator, int denominator)
        {
            return numerator / denominator;
        }
    }
}
Public Class DivisionClass
   Public Function Divide(ByVal numerator As Integer, ByVal denominator As Integer) As Integer
      Return numerator \ denominator
   End Function
End Class

Die folgende Testmethode testet die Divide-Methode des DivisionClass-Objekts. Es wird auf das Vorkommen von DivideByZeroException getestet.

using Microsoft.VisualStudio.TestTools.UnitTesting;
using MyCSNamespace;

namespace MyCSTestProject
{
    [TestClass()]
    public class DivisionClassTest
    {
        [TestMethod()]
        [ExpectedException(typeof(System.DivideByZeroException))]
        public void DivideTest()
        {
            DivisionClass target = new DivisionClass();
            int numerator = 4;
            int denominator = 0;
            int actual;
            actual = target.Divide(numerator, denominator);
        }
    }
}
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports MyVBProject

<TestClass()> _
Public Class DivisionClassTest
    <TestMethod()> _
    <ExpectedException(GetType(System.DivideByZeroException), "MyMessage")> _
    Public Sub DivideTest()
        Dim target As DivisionClass = New DivisionClass
        Dim numerator As Integer = 4
        Dim denominator As Integer = 0
        Dim actual As Integer
        actual = target.Divide(numerator, denominator)
    End Sub
End Class

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic)-Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Siehe auch

Referenz

Microsoft.VisualStudio.TestTools.UnitTesting-Namespace