Partager via


ExpectedExceptionAttribute, classe

Indique qu'une exception est attendue durant l'exécution de la méthode de test. Cette classe ne peut pas être héritée.

Hiérarchie d'héritage

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

Espace de noms :  Microsoft.VisualStudio.TestTools.UnitTesting
Assembly :  Microsoft.VisualStudio.QualityTools.UnitTestFramework (dans Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Syntaxe

'Déclaration
<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

Le type ExpectedExceptionAttribute expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique ExpectedExceptionAttribute(Type) Initialise une nouvelle instance de la classe ExpectedExceptionAttribute à une exception attendue.
Méthode publique ExpectedExceptionAttribute(Type, String) Initialise une nouvelle instance de la classe ExpectedExceptionAttribute à un type d'exception attendu et un message qui décrit l'exception.

Début

Propriétés

  Nom Description
Propriété publique AllowDerivedTypes
Propriété publique ExceptionType Obtient le type d'exception attendu.
Propriété protégée NoExceptionMessage Infrastructure. (Hérité de ExpectedExceptionBaseAttribute.)
Propriété protégée TestContext Infrastructure. (Hérité de ExpectedExceptionBaseAttribute.)
Propriété publique TypeId Lors de son implémentation dans une classe dérivée, obtient un identificateur unique pour Attribute. (Hérité de Attribute.)

Début

Méthodes

  Nom Description
Méthode publique Equals Infrastructure. Retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode protégée Finalize Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)
Méthode publique GetHashCode Retourne le code de hachage pour cette instance. (Hérité de Attribute.)
Méthode publique GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique IsDefaultAttribute En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut pour la classe dérivée. (Hérité de Attribute.)
Méthode publique Match En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute.)
Méthode protégée MemberwiseClone Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée RethrowIfAssertException Lève de nouveau l'exception si c'est un AssertFailedException ou un AssertInconclusiveException. (Hérité de ExpectedExceptionBaseAttribute.)
Méthode publique ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode protégée Verify Infrastructure. (Hérité de ExpectedExceptionBaseAttribute.)

Début

Implémentations d'interface explicite

  Nom Description
Implémentation d'interface expliciteMéthode privée _Attribute.GetIDsOfNames Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfo Récupère les informations de type pour un objet, qui peuvent être utilisées pour obtenir les informations de type d'une interface. (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.GetTypeInfoCount Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute.)
Implémentation d'interface expliciteMéthode privée _Attribute.Invoke Fournit l'accès aux propriétés et aux méthodes exposées par un objet. (Hérité de Attribute.)

Début

Notes

Cet attribut est utilisé pour tester si une exception attendue est levée. La méthode de test réussit si l'exception attendue est levée. Le test échoue si l'exception levée hérite de l'exception attendue.

Si un test possède à la fois un attribut ExpectedException et une instruction Assert, l'un des deux peut provoquer l'échec du test. Pour déterminer si c'est l'attribut ou l'instruction qui a provoqué l'échec du test, double-cliquez sur le résultat du test pour ouvrir la page Détails des résultats des tests. Pour plus d'informations sur les résultats de tests, consultez Test Results Reported.

Cet attribut peut être spécifié sur une méthode. Il ne peut y avoir qu'une seule instance de cet attribut sur une méthode.

Pour plus d'informations sur l'utilisation d'attributs, consultez Extension des métadonnées à l'aide des attributs.

Exemples

La classe suivante contient la méthode à tester :

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

La méthode de test suivante teste la méthode Divide de l'objet DivisionClass. Elle teste si DivideByZeroException existe.

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

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Microsoft.VisualStudio.TestTools.UnitTesting, espace de noms