Compartilhar 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 de ExpectedExceptionAttribute classe com uma exceção esperada.
Método público ExpectedExceptionAttribute(Type, String) Inicializa uma nova instância de ExpectedExceptionAttribute o tipo de exceção esperada e a classe com e uma mensagem que descreve a exceção.

Início

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.)

Início

Métodos

  Nome Descrição
Método público Equals Infraestrutura. Returns a value that indicates whether this instance is equal to a specified object. (Herdado de Attribute.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e executar outras operações de limpeza antes que ele é recuperado pela coleta de lixo. (Herdado de Object.)
Método público GetHashCode Retorna o código hash para essa instância. (Herdado de Attribute.)
Método público GetType Obtém o 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 protegido MemberwiseClone Cria uma cópia superficial do atual Object. (Herdado de Object.)
Método protegido RethrowIfAssertException Lança a exceção novamente se ele for um AssertFailedException ou um AssertInconclusiveException. (Herdado de ExpectedExceptionBaseAttribute.)
Método público ToString Retorna um string que representa o objeto atual. (Herdado de Object.)
Método protegido Verify Infraestrutura. (Herdado de ExpectedExceptionBaseAttribute.)

Início

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.)

Início

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 é lançada. O teste falhará se a exceção gerada herda a partir da exceção esperada.

Se um teste tem tanto um atributo ExpectedException e uma Assert instrução, qualquer deles pode causar 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 os 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 de teste:

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 static (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