Compartir a través de


TestCleanupAttribute (Clase)

Identifica un método que contiene código que se debe utilizar después de ejecutarse la prueba para liberar recursos obtenidos por todas las pruebas de la clase Test. Esta clase no puede heredarse.

Jerarquía de herencia

Object
  Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanupAttribute

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)> _
Public NotInheritable Class TestCleanupAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class TestCleanupAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class TestCleanupAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type TestCleanupAttribute =  
    class 
        inherit Attribute 
    end
public final class TestCleanupAttribute extends Attribute

El tipo TestCleanupAttribute expone los siguientes miembros.

Constructores

  Nombre Descripción
Método público TestCleanupAttribute Inicializa una nueva instancia de la clase TestCleanupAttribute.

Arriba

Propiedades

  Nombre Descripción
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 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 invalida 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 invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Se hereda de Attribute).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).

Arriba

Implementaciones explícitas de interfaces

  Nombre Descripción
Implementación explícita de interfacesMétodo privado System#Runtime#InteropServices#_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 System#Runtime#InteropServices#_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 System#Runtime#InteropServices#_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 System#Runtime#InteropServices#_Attribute#Invoke Proporciona acceso a las propiedades y los métodos expuestos por un objeto. (Se hereda de Attribute).

Arriba

Comentarios

El método marcado con este atributo se ejecutará después de los métodos marcados con TestMethodAttribute y antes que los métodos marcados con ClassCleanupAttribute y AssemblyCleanupAttribute.

Este atributo puede especificarse en un método. Sólo se puede aplicar una instancia de este atributo a un método.

De forma predeterminada, este atributo se utiliza en código generado.

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

Ejemplos

El espacio de nombres SampleClassLib contiene la clase DivideClass, que a su vez contiene el método que deseamos probar. Este método se llama DivideMethod().

using System;
using System.Collections.Generic;
using System.Text;

namespace SampleClassLib
{
   public class DivideClass
   {
      public int DivideMethod(int a)
      {
         return 2 / a;
      }
   }
}
Imports System
Imports System.Collections.Generic
Imports System.Text

Namespace SampleClassLib
    Public Class DivideClass
        Public Function DivideMethod(ByVal a As Integer) As Integer
            Return 2 \ a
        End Function
    End Class
End Namespace

En el código siguiente, la clase DivideClassTest contiene un método de prueba llamado DivideMethodTest. Este código también contiene atributos que controlan el orden de ejecución de la inicialización y la limpieza para el método, la clase y el ensamblado.

En particular, fíjese en el atributo TestCleanup en el método Cleanup().

using Microsoft.VisualStudio.TestTools.UnitTesting;
using SampleClassLib;
using System;
using System.IO;
using System.Windows.Forms;

namespace TestNamespace
{
   [TestClass()]
   public class DivideClassTest
   {
      [AssemblyInitialize()]
      public static void AssemblyInit(TestContext context)
      {
         MessageBox.Show("Assembly Init");
         }

      [ClassInitialize()]
      public static void ClassInit(TestContext context)
      {
         MessageBox.Show("ClassInit");
      }

      [TestInitialize()]
      public void Initialize()
      {
         MessageBox.Show("TestMethodInit");
      }

      [TestCleanup()]
      public void Cleanup()
      {
         MessageBox.Show("TestMethodCleanup");
      }

      [ClassCleanup()]
      public static void ClassCleanup()
      {
         MessageBox.Show("ClassCleanup");
      }

      [AssemblyCleanup()]
      public static void AssemblyCleanup()
      {
         MessageBox.Show("AssemblyCleanup");
      }

      [TestMethod()]
      [ExpectedException(typeof(System.DivideByZeroException))]
      public void DivideMethodTest()
      {
         DivideClass target = new DivideClass();
         int a = 0; 
         int actual;
         actual = target.DivideMethod(a);
      }
   }
}
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports System.Windows.Forms
Imports SCL2 = SampleClassLib2.SampleClassLib
Imports System
Imports System.IO

Namespace TestNamespace

   <TestClass()> _
   Public Class DivideClassTest

      <AssemblyInitialize()> _
      Public Shared Sub AssemblyInit(ByVal context As TestContext)
         MessageBox.Show("Assembly Init")
      End Sub

      <ClassInitialize()> _
      Public Shared Sub ClassInit(ByVal context As TestContext)
         MessageBox.Show("Test Class Init")
      End Sub

      <TestInitialize()> _
      Public Sub Initialize()
         MessageBox.Show("Test Initialize")
      End Sub

      <TestCleanup()> _
      Public Sub Cleanup()
         MessageBox.Show("Test Cleanup")
      End Sub

      <ClassCleanup()> _
      Public Shared Sub ClassCleanup()
         MessageBox.Show("Test Class Cleanup")
      End Sub

      <AssemblyCleanup()> _
      Public Shared Sub AssemblyCleanup()
         MessageBox.Show("Test Assembly Cleanup")
      End Sub

      <TestMethod()> _
      <ExpectedException(GetType(System.DivideByZeroException))> _
      Public Sub DivideMethodTest()
         Dim target As SCL.DivideClass = New SCL.DivideClass
         Dim a As Integer = 0
         Dim actual As Integer
         actual = target.DivideMethod(a)
      End Sub

   End Class
End Namespace

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)