Compartir a través de


TestInitializeAttribute (Clase)

Actualización: noviembre 2007

Identifica el método para ejecutar antes que la prueba para asignar y configurar los recursos que necesitan todas las pruebas de la clase Test. Esta clase no puede heredarse.

Espacio de nombres:  Microsoft.VisualStudio.TestTools.UnitTesting
Ensamblado:  Microsoft.VisualStudio.SmartDevice.UnitTestFramework (en Microsoft.VisualStudio.SmartDevice.UnitTestFramework.dll)

Sintaxis

<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class TestInitializeAttribute _
    Inherits Attribute

Dim instance As TestInitializeAttribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class TestInitializeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class TestInitializeAttribute sealed : public Attribute
public final class TestInitializeAttribute extends Attribute

Comentarios

El método marcado con este atributo, cuando se ejecute en una prueba de carga, se ejecutará una vez por cada iteración del usuario virtual en la prueba. Si necesita realizar una vez operaciones de inicialización que se apliquen a toda la prueba, utilice el atributo ClassInitializeAttribute.

El orden de ejecución de los métodos será el siguiente:

  1. Métodos marcados con el atributo AssemblyInitializeAttribute.

  2. Métodos marcados con el atributo ClassInitializeAttribute.

  3. Métodos marcados con el atributo TestInitializeAttribute.

  4. Métodos marcados con el atributo TestMethodAttribute.

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

Este atributo se utiliza de forma predeterminada en código generado.

Para obtener más información acerca del uso de 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 TestInitialize en el método Initialize().

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

Jerarquía de herencia

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

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

TestInitializeAttribute (Miembros)

Microsoft.VisualStudio.TestTools.UnitTesting (Espacio de nombres)