Freigeben über


ExpectedExceptionAttribute-Klasse

Aktualisiert: November 2007

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

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

Syntax

<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class ExpectedExceptionAttribute _
    Inherits Attribute

Dim instance As ExpectedExceptionAttribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class ExpectedExceptionAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class ExpectedExceptionAttribute sealed : public Attribute
public final class ExpectedExceptionAttribute extends Attribute

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 Ausgegebene Testergebnisse.

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

Vererbungshierarchie

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

Threadsicherheit

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

Siehe auch

Referenz

ExpectedExceptionAttribute-Member

Microsoft.VisualStudio.TestTools.UnitTesting-Namespace