Condividi tramite


Classe ExpectedExceptionAttribute

Aggiornamento: novembre 2007

Indica che è prevista un'eccezione durante l'esecuzione del metodo di test. La classe non può essere ereditata.

Spazio dei nomi:  Microsoft.VisualStudio.TestTools.UnitTesting
Assembly:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Sintassi

<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

Note

Questo attributo viene utilizzato per verificare se viene generata un'eccezione prevista. Il metodo di test passerà se viene generata l'eccezione prevista. Se l'eccezione generata eredita dall'eccezione prevista, il test darà esito negativo

Se un test contiene un attributo ExpectedException e un'istruzione Assert, può dare esito negativo a causa di uno di questi due elementi. Per determinare se l'attributo o l'istruzione ha causato l'esito negativo del test, fare doppio clic sul risultato del test per aprire la relativa pagina Dettagli risultati. Per ulteriori informazioni sui risultati dei test, vedere Report dei risultati di test generati.

È possibile specificare questo attributo su un metodo. È possibile che sia presente un'unica istanza di questo attributo su un metodo.

Per ulteriori informazioni sulla modalità di utilizzo degli attributi, vedere Estensione di metadati mediante attributi.

Esempi

Nella classe riportata di seguito è contenuto il metodo da verificare:

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

Il metodo di test illustrato di seguito consente di verificare il metodo Divide dell'oggetto DivisionClass. Viene verificato per accertarsi dell'esistenza di un'eccezione DivideByZeroException.

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

Gerarchia di ereditarietà

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

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Membri ExpectedExceptionAttribute

Spazio dei nomi Microsoft.VisualStudio.TestTools.UnitTesting