Partilhar via


Classe ExpectedExceptionAttribute

Indica que uma exceção é o esperado durante a execução do método de teste.Esta classe não pode ser herdada.

Hierarquia de herança

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

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

Sintaxe

'Declaração
<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

O tipo ExpectedExceptionAttribute expõe os membros a seguir.

Construtores

  Nome Descrição
Método público ExpectedExceptionAttribute(Type) Inicializa uma nova instância da ExpectedExceptionAttribute classe com uma exceção não esperada.
Método público ExpectedExceptionAttribute(Type, String) Inicializa uma nova instância da ExpectedExceptionAttribute o tipo de exceção esperada e classe com e uma mensagem que descreve a exceção.

Superior

Propriedades

  Nome Descrição
Propriedade pública AllowDerivedTypes
Propriedade pública ExceptionType Obtém o tipo de exceção esperada.
Propriedade protegida NoExceptionMessage Infraestrutura. (Herdado de ExpectedExceptionBaseAttribute.)
Propriedade protegida TestContext Infraestrutura. (Herdado de ExpectedExceptionBaseAttribute.)
Propriedade pública TypeId Quando implementado em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute.)

Superior

Métodos

  Nome Descrição
Método público Equals Infraestrutura. Retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método público GetHashCode Retorna o código hash para essa instância. (Herdado de Attribute.)
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método público IsDefaultAttribute Quando substituído em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.)
Método público Match Quando substituído em uma classe derivada, retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)
Método protegido Verify Infraestrutura. (Herdado de ExpectedExceptionBaseAttribute.)

Superior

Implementações explícitas da interface

  Nome Descrição
Implementação explícita da interfaceMétodo particular _Attribute.GetIDsOfNames Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfo Recupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.GetTypeInfoCount Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular _Attribute.Invoke Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.)

Superior

Comentários

Este atributo é usado para testar se uma exceção não esperada é lançada.O método de teste passará a se a exceção esperada.O teste falhará se a exceção gerada herda as exceções esperadas.

Se um teste tem tanto um atributo ExpectedException e uma Assert instrução, qualquer deles pode fazer com que o teste falhar.Para determinar se o atributo ou a instrução causado o teste falhar, clique duas vezes o resultado do teste para abrir a página de detalhes dos resultados para o teste.Para obter mais informações sobre resultados de teste, consulte Test Results Reported.

Esse atributo pode ser especificado em um método.Pode haver apenas uma instância desse atributo em um método.

Para obter mais informações sobre como usar os atributos, consulte Estendendo metadados usando atributos.

Exemplos

A seguinte classe contém o método para testar:

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

O método de teste a seguir testa o método de divisão do objeto DivisionClass.Ele testa a existência de um 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

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.TestTools.UnitTesting