Aracılığıyla paylaş


ClassInitializeAttribute Sınıf

Herhangi bir sınama sınıfındaki sınamaları çalıştırmadan önce kullanılması gereken kodu içeren bir yöntem ve test sınıfı tarafından kullanılmak üzere kaynak tahsis etmek için tanımlar.Bu sınıf devralınamaz.

Devralma Hiyerarşisi

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

Ad alanı:  Microsoft.VisualStudio.TestTools.UnitTesting
Derleme:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll içinde)

Sözdizimi

'Bildirim
<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

ClassInitializeAttribute türü aşağıdaki üyeleri ortaya koyar.

Oluşturucular

  Ad Açıklama
Genel yöntem ClassInitializeAttribute Yeni bir örneğini başlatır ClassInitializeAttribute sınıfı.

Üst

Özellikler

  Ad Açıklama
Genel özellik TypeId Türetilmiş bir sınıf içerisinde uygulanan, bunun için benzersiz bir tanımlayıcı alır Attribute. (Attribute kaynağından devralındı.)

Üst

Yöntemler

  Ad Açıklama
Genel yöntem Equals Altyapı. Bu örnek, belirtilen bir nesneye eşit olup olmadığını gösteren bir değeri döndürür. (Attribute kaynağından devralındı.)
Genel yöntem GetHashCode Bu örnek için karma kodunu döndürür. (Attribute kaynağından devralındı.)
Genel yöntem GetType Alır Type geçerli örneğinin. (Object kaynağından devralındı.)
Genel yöntem IsDefaultAttribute Türetilmiş bir sınıfta geçersiz kılınmış, bu örneğin değeri türetilmiş bir sınıf için varsayılan değer olup olmadığını gösterir. (Attribute kaynağından devralındı.)
Genel yöntem Match Türetilmiş bir sınıfta geçersiz kılınmış, bu örnek, belirtilen nesne eşit olup olmadığını gösteren bir değeri döndürür. (Attribute kaynağından devralındı.)
Genel yöntem ToString Geçerli nesneyi temsil eden bir dize döndürür. (Object kaynağından devralındı.)

Üst

Açık Arabirim Uygulamaları

  Ad Açıklama
Açık arabirim uygulamasıÖzel yöntem _Attribute.GetIDsOfNames Adlar kümesi dağıtma tanımlayıcıları karşılık gelen bir dizi eşleştirir. (Attribute kaynağından devralındı.)
Açık arabirim uygulamasıÖzel yöntem _Attribute.GetTypeInfo Bir arabirim türü bilgilerini almak için kullanılan bir nesne türü bilgilerini alır. (Attribute kaynağından devralındı.)
Açık arabirim uygulamasıÖzel yöntem _Attribute.GetTypeInfoCount Bir nesne (0 veya 1) sağlar türü bilgileri arabirimi sayısının alır. (Attribute kaynağından devralındı.)
Açık arabirim uygulamasıÖzel yöntem _Attribute.Invoke Özellikleri ve yöntemleri bir nesnesinin kullandığı erişim sağlar. (Attribute kaynağından devralındı.)

Üst

Notlar

Yük sınamada çalıştırdığınızda bu özniteliğiyle işaretlenen yöntem çok kez çalıştırılacaksa ve gerçekleştirdiği başlatma işlemleri için tüm test uygulanır.Kullanmak için bir sınama sanal kullanıcı her tekrarda kez başlatma işlemleri yapmanız gerekiyorsa, TestInitializeAttribute.

Yöntemleri çalıştırma sırası aşağıdaki gibidir:

  1. Yöntemleri ile işaretli AssemblyInitializeAttribute.

  2. Yöntemleri ile işaretli ClassInitializeAttribute.

  3. Yöntemleri ile işaretli TestInitializeAttribute.

  4. Yöntemleri ile işaretli TestMethodAttribute.

Bir sınıfta tek yöntem, bu öznitelik ile donatılmış.

Önemli notÖnemli

Bu özellik, asp kullanılmamalıdır.net birimi sınamaları, diğer bir deyişle, herhangi bir test [HostType("ASP.NET")] özniteliği.IIS ve asp durumsuz doğası nedeniyle.net, bu öznitelik ile donatılmış bir yöntemi sınama birden çok kez çağrılabilir.

Bir yöntem bu özniteliği belirtilebilir.Bu öznitelik yalnızca bir örneği için bir yöntem uygulanabilir.

Öznitelikleri kullanma hakkında daha fazla bilgi için bkz: Öznitelikleri kullanarak meta verileri genişletme.

Örnekler

Aşağıdaki örnekler, başlatma ve hangi yöntemleri test motoru tarafından test farklı dönemlerdeki çalıştırılmalıdır göstermek için kullanılan temizleme öznitelikleri göstermektedir.

Sınıf ve test yöntemi ilk kod örnekleri içerir.Bu örneği çalıştırmak için bir class library projesi oluşturun ve aaıdaki örnek kod Değiştir.

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

Aşağıdaki örnek test etmek için kod içeren DivideMethod() önceki kod örnekleri bulundu.Test bir proje oluşturduğunuzda ve bir sınama sınıf belgede aşağıdaki kodu yerleştirin.Uygun başvuruları projeye ekleyin.Bu kod, yöntem, sınıf ve derleme için başlatma ve temizleme yürütme sırasını denetlemek öznitelikleri içerir.

Özellikle, ClassInit () yöntemi ClassInitialize özniteliği dikkat edin.

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

İş Parçacığı Güvenliği

Bu türün tüm genel statik (Visual Basic'te Shared) üyeleri iş parçacığı açısından güvenlidir. Hiçbir örnek üyesinin iş parçacığı açısından güvenliği garanti edilemez.

Ayrıca bkz.

Başvuru

Microsoft.VisualStudio.TestTools.UnitTesting Ad Alanı

Diğer Kaynaklar

Birim Test anatomisi

Unit Testing Framework