Sdílet prostřednictvím


ClassInitializeAttribute – třída

Určuje metodu, která obsahuje kód, který musí být použita před spuštěn některý z testů test třídy a přidělení zdrojů pro test třídy.Tato třída nemůže být zděděna.

Hierarchie dědičnosti

Object
  Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.ClassInitializeAttribute

Obor názvů:  Microsoft.VisualStudio.TestTools.UnitTesting
Sestavení:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (v Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Syntaxe

'Deklarace
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class ClassInitializeAttribute _
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class ClassInitializeAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class ClassInitializeAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type ClassInitializeAttribute =  
    class 
        inherit Attribute 
    end
public final class ClassInitializeAttribute extends Attribute

Typ ClassInitializeAttribute zveřejňuje následující členy.

Konstruktory

  Název Popis
Veřejná metoda ClassInitializeAttribute Vytvoří novou instanci třídy ClassInitializeAttribute.

Nahoru

Vlastnosti

  Název Popis
Veřejná vlastnost TypeId Po implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno z Attribute.)

Nahoru

Metody

  Název Popis
Veřejná metoda Equals Infrastruktura. Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno z Attribute.)
Veřejná metoda GetHashCode Vrátí kód hash této instance. (Zděděno z Attribute.)
Veřejná metoda GetType Získá Type aktuální instance. (Zděděno z Object.)
Veřejná metoda IsDefaultAttribute Při přepsání v odvozené třídě označuje, zda je hodnota této instance výchozí hodnota pro odvozené třídy. (Zděděno z Attribute.)
Veřejná metoda Match Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda tato instance se rovná zadaný objekt. (Zděděno z Attribute.)
Veřejná metoda ToString Vrátí řetězec, který představuje aktuální objekt. (Zděděno z Object.)

Nahoru

Explicitní implementace rozhraní

  Název Popis
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#GetIDsOfNames Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#GetTypeInfo Načte informace o typu objektu, který lze použít, chcete-li získat informace o typu rozhraní. (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno z Attribute.)
Explicitní implementace rozhraníSoukromá metoda System#Runtime#InteropServices#_Attribute#Invoke Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno z Attribute.)

Nahoru

Poznámky

Pokud spustit zkušební zatížení, spustí metoda s tímto atributem se jednou a inicializace všech operací bude platit pro celý test.Pokud potřebujete provést inicializaci operace jednou pro každou iteraci virtuální uživatel v testu, použít TestInitializeAttribute.

Pořadí, ve kterém bude spuštěn metody je:

  1. Metody označena AssemblyInitializeAttribute.

  2. Metody označena ClassInitializeAttribute.

  3. Metody označena TestInitializeAttribute.

  4. Metody označena TestMethodAttribute.

Pouze jednu metodu ve třídě může být upraven pomocí tento atribut.

Důležitá poznámkaDůležité

Tento atribut by nepoužívá ASP.NET jednotky testů, jakéhokoli testu s [HostType("ASP.NET")] atributu.Z důvodu příslušnosti povahy služby IIS a ASP.NET, zdobená se tento atribut může být volána metoda více než jednou za spustit test.

Tento atribut může být zadán pro metodu.Pouze jedna instance tohoto atributu může použít pro metodu.

Další informace o použití atributů naleznete v Rozšiřování metadat pomocí atributů.

Příklady

Následující příklady ukazují inicializace a čištění atributy, které slouží k označení, které metody by měl být spuštěn test motoru v různých obdobích test.

První ukázky kódu obsahují třídy a metody testování.Chcete-li spustit příklad vytvoření projektu knihovny třídy a nahradit kód v následujícím příkladu.

using System;

namespace SampleClassLib
{
    public class DivideClass
    {
        public static int DivideMethod(int denominator)
        {
            return (2 / denominator);
        }
    }
}
Imports System

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

Následující příklad obsahuje kód test DivideMethod() v předchozí příklady kódu.Vytvoření projektu zkouška a zkouška třídy dokumentu vložte následující kód.Přidejte příslušné odkazy na projekt.Tento kód obsahuje atributy, které určují pořadí inicializace a čištění provádění metody, třídy a sestavení.

Všimněte si zejména atribut ClassInitialize na metody ClassInit ().

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

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

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

        [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.DivideMethod(0);
        }
    }
}
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Imports SampleClassLib2.SampleClassLib
Imports System
Imports System.IO
Imports System.Windows.Forms

Namespace TestNamespace
    <TestClass()> _
    Public NotInheritable Class DivideClassTest
        <AssemblyInitialize()> _
        Public Shared Sub AssemblyInit(ByVal context As TestContext)
            MsgBox("AssemblyInit " + context.TestName)
        End Sub 'AssemblyInit

        <ClassInitialize()> _
        Public Shared Sub ClassInit(ByVal context As TestContext)
            MsgBox("ClassInit " + context.TestName)
        End Sub 'ClassInit

        <TestInitialize()> _
        Public Sub Initialize()
            MsgBox("TestMethodInit")
        End Sub 

        <TestCleanup()> _
        Public Sub Cleanup()
            MsgBox("TestMethodCleanup")
        End Sub 

        <ClassCleanup()> _
        Public Shared Sub ClassCleanup()
            MsgBox("ClassCleanup")
        End Sub 

        <AssemblyCleanup()> _
        Public Shared Sub AssemblyCleanup()
            MsgBox("AssemblyCleanup")
        End Sub

        <TestMethod()> _
        <ExpectedException(GetType(System.DivideByZeroException))> _
        Public Sub DivideMethodTest()
            DivideClass.DivideMethod(0)
        End Sub
    End Class
End Namespace

Bezpečný přístup z více vláken

Všechny veřejné členy static (Shared v jazyce Visual Basic) tohoto typu jsou bezpečné pro přístup z více vláken. Není zaručeno, že členy instancí jsou bezpečné pro přístup z více vláken.

Viz také

Referenční dokumentace

Microsoft.VisualStudio.TestTools.UnitTesting – obor názvů

Další zdroje

Anatomie Test jednotky

Unit Testing Framework