Classe TestInitializeAttribute
Identifica il metodo venga eseguita prima del test per allocare e configurare le risorse necessarie per tutti i test.questa classe non può essere ereditata.
Gerarchia di ereditarietà
System.Object
System.Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute
Spazio dei nomi: Microsoft.VisualStudio.TestTools.UnitTesting
Assembly: Microsoft.VisualStudio.QualityTools.UnitTestFramework (in Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Sintassi
'Dichiarazione
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class TestInitializeAttribute _
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class TestInitializeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class TestInitializeAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type TestInitializeAttribute =
class
inherit Attribute
end
public final class TestInitializeAttribute extends Attribute
Il tipo TestInitializeAttribute espone i seguenti membri.
Costruttori
Nome | Descrizione | |
---|---|---|
TestInitializeAttribute | Inizializza una nuova istanza di TestInitializeAttribute classe. |
In alto
Proprietà
Nome | Descrizione | |
---|---|---|
TypeId | Quando implementato in una classe derivata, ottiene un identificatore univoco per questa Attribute. (Ereditato da Attribute) |
In alto
Metodi
Nome | Descrizione | |
---|---|---|
Equals | Infrastruttura. Restituisce un valore che indica se l'istanza è uguale a un oggetto specificato. (Ereditato da Attribute) | |
GetHashCode | Restituisce il codice hash per l'istanza. (Ereditato da Attribute) | |
GetType | Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) | |
IsDefaultAttribute | Una volta sottoposto a override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) | |
Match | Una volta sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) | |
ToString | Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
In alto
Implementazioni esplicite dell'interfaccia
Nome | Descrizione | |
---|---|---|
_Attribute.GetIDsOfNames | Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) | |
_Attribute.GetTypeInfo | Recupera le informazioni sui tipi per un oggetto, che può essere utilizzato per ottenere informazioni sul tipo per un'interfaccia. (Ereditato da Attribute) | |
_Attribute.GetTypeInfoCount | Recupera il numero di interfacce di informazioni sui tipi che un oggetto garantisce (0 o 1). (Ereditato da Attribute) | |
_Attribute.Invoke | Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |
In alto
Note
Se eseguito in un test di carico, il metodo contrassegnato con l'attributo verrà eseguito una volta per ogni iterazione dell'utente virtuale nel test.Se è necessario fare una volta le operazioni di inizializzazione, che si applica a test intero, utilizzare ClassInitializeAttribute.
L'ordine dei metodi verranno eseguiti è:
metodi contrassegnati con AssemblyInitializeAttribute.
metodi contrassegnati con ClassInitializeAttribute.
metodi contrassegnati con TestInitializeAttribute.
metodi contrassegnati con TestMethodAttribute.
Questo attributo può essere specificato in un metodo.Solo un'istanza di questo attributo può essere applicato a un metodo.
Questo attributo viene utilizzato per impostazione predefinita il codice generato.
Per ulteriori informazioni sull'utilizzo degli attributi, vedere Estensione di metadati mediante attributi.
Esempi
Lo spazio dei nomi di SampleClassLib contiene la classe di DivideClass, che a sua volta il metodo che si desidera testare.Questo metodo viene chiamato 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
Nel codice seguente, la classe di test di DivideClassTest contiene un metodo di test denominato DivideMethodTest.Questo codice contiene anche gli attributi che consentono di controllare l'ordine di esecuzione di inizializzazione e pulizia per il metodo, la classe e assembly.
In particolare, si noti l'attributo TestInitialize il metodo di 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
Codice thread safe
Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.VisualStudio.TestTools.UnitTesting