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
'Declaration
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class ExpectedExceptionAttribute _
Inherits Attribute
'Usage
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.