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:
Métodos marcados con el atributo AssemblyInitializeAttribute.
Métodos marcados con el atributo ClassInitializeAttribute.
Métodos marcados con el atributo TestInitializeAttribute.
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)