Compartir a través de


ExpectedExceptionAttribute (Clase)

Indica que se espera una excepción durante la ejecución del método de prueba. Esta clase no puede heredarse.

Jerarquía de herencia

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

Espacio de nombres:  Microsoft.VisualStudio.TestTools.UnitTesting
Ensamblado:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (en Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Sintaxis

'Declaración
<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

El tipo ExpectedExceptionAttribute expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público ExpectedExceptionAttribute(Type) Inicializa una instancia nueva de la clase ExpectedExceptionAttribute con una excepción esperada.
Método público ExpectedExceptionAttribute(Type, String) Inicializa una instancia nueva de la clase ExpectedExceptionAttribute con un tipo de excepción esperado y un mensaje que describe la excepción.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública AllowDerivedTypes
Propiedad pública ExceptionType Obtiene el tipo de la excepción esperada.
Propiedad protegida NoExceptionMessage Infraestructura. (Se hereda de ExpectedExceptionBaseAttribute).
Propiedad protegida TestContext Infraestructura. (Se hereda de ExpectedExceptionBaseAttribute).
Propiedad pública TypeId Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Se hereda de Attribute).

Arriba

Métodos

  Nombre Descripción
Método público Equals Infraestructura. Devuelve un valor que indica si esta instancia equivale a un objeto especificado. (Se hereda de Attribute).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Devuelve el código hash de esta instancia. (Se hereda de Attribute).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método público IsDefaultAttribute Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado para la clase derivada. (Se hereda de Attribute).
Método público Match Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método protegido RethrowIfAssertException Produce la excepción de nuevo si se trata de AssertFailedException o AssertInconclusiveException. (Se hereda de ExpectedExceptionBaseAttribute).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método protegido Verify Infraestructura. (Se hereda de ExpectedExceptionBaseAttribute).

Arriba

Implementaciones explícitas de interfaces

  Nombre Descripción
Implementación explícita de interfacesMétodo privado _Attribute.GetIDsOfNames Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado _Attribute.GetTypeInfo Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz. (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado _Attribute.GetTypeInfoCount Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Se hereda de Attribute).
Implementación explícita de interfacesMétodo privado _Attribute.Invoke Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).

Arriba

Comentarios

Este atributo se utiliza para comprobar si se inicia una excepción esperada. El método de prueba es correcto si se inicia la excepción esperada. Se producirá un error en la prueba si la excepción iniciada hereda de la excepción esperada.

Si una prueba tiene un atributo ExpectedException y una instrucción Assert, cualquiera de los dos puede provocar un error en la prueba. Para determinar si el error fue provocado por el atributo o por la instrucción, haga doble clic en el resultado de la prueba para abrir la página de resultados para esa prueba. Para obtener más información acerca de los resultados de pruebas, vea Test Results Reported.

Este atributo puede especificarse en un método. Solo puede haber una instancia de este atributo en un método.

Para obtener más información acerca de cómo utilizar los atributos, vea Extender metadatos mediante atributos.

Ejemplos

La clase siguiente contiene el método que se va a probar:

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

El siguiente método prueba el método Divide del objeto DivisionClass. Prueba la existencia de una 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

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.TestTools.UnitTesting (Espacio de nombres)