Condividi tramite


Classe ExpectedExceptionAttribute

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

Gerarchia di ereditarietà

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

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

Sintassi

'Dichiarazione
<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

Il tipo ExpectedExceptionAttribute espone i seguenti membri.

Costruttori

  Nome Descrizione
Metodo pubblico ExpectedExceptionAttribute(Type) Inizializza una nuova istanza della classe ExpectedExceptionAttribute con un'eccezione prevista.
Metodo pubblico ExpectedExceptionAttribute(Type, String) Inizializza una nuova istanza della classe ExpectedExceptionAttribute con un tipo di eccezione previsto e un messaggio che descrive l'eccezione.

In alto

Proprietà

  Nome Descrizione
Proprietà pubblica AllowDerivedTypes
Proprietà pubblica ExceptionType Ottiene un tipo di eccezione previsto.
Proprietà protetta. NoExceptionMessage Infrastruttura. (Ereditato da ExpectedExceptionBaseAttribute)
Proprietà protetta. TestContext Infrastruttura. (Ereditato da ExpectedExceptionBaseAttribute)
Proprietà pubblica TypeId Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute)

In alto

Metodi

  Nome Descrizione
Metodo pubblico Equals Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute)
Metodo pubblico GetHashCode Restituisce il codice hash per l'istanza. (Ereditato da Attribute)
Metodo pubblico GetType Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblico IsDefaultAttribute Quando è sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito della classe derivata. (Ereditato da Attribute)
Metodo pubblico Match Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute)
Metodo pubblico ToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo protetto Verify Infrastruttura. (Ereditato da ExpectedExceptionBaseAttribute)

In alto

Implementazioni esplicite dell'interfaccia

  Nome Descrizione
Implementazione esplicita dell'interfacciaMetodo privato System#Runtime#InteropServices#_Attribute#GetIDsOfNames Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato System#Runtime#InteropServices#_Attribute#GetTypeInfo Recupera le informazioni sul tipo relative a un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Recupera il numero delle interfacce di informazioni di tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato System#Runtime#InteropServices#_Attribute#Invoke Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute)

In alto

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 Test Results Reported.

È 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

La classe riportata di seguito contiene 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

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

Spazio dei nomi Microsoft.VisualStudio.TestTools.UnitTesting