Partilhar via


Classe ExpectedExceptionAttribute

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

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

Sintaxe

<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

Comentários

Esse atributo é usado para teste se uma exceção esperada é lançada.O método de teste passará se a exceção esperada é lançada.O teste falhará se a exceção gerada herda de exceção esperada.

Se um teste tiver um atributo ExpectedException e um Assert demonstrativo, qualquer deles pode fazer com que o teste falhar. Para determinar se o atributo ou a demonstrativo causado o teste falhar, clicar duas vezes o resultado do teste para em em aberto a página resultados Details para o teste.Para obter mais informações sobre resultados de teste, consulte Resultados de teste 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 atributos, consulte Estendendo metadados usando atributos.

Exemplos

A seguinte classe contém o método para 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

Hierarquia de herança

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

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

Membros ExpectedExceptionAttribute

Namespace Microsoft.VisualStudio.TestTools.UnitTesting