Udostępnij za pośrednictwem


Klasa TestInitializeAttribute

Określa metodę, która ma być uruchamiane przed testem do przydzielania i konfigurowania zasobów wymaganych przez wszystkie testy w klasie badania.Klasa ta nie może być dziedziczona.

Hierarchia dziedziczenia

Object
  Attribute
    Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute

Przestrzeń nazw:  Microsoft.VisualStudio.TestTools.UnitTesting
Zestaw:  Microsoft.VisualStudio.QualityTools.UnitTestFramework (w Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)

Składnia

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

Typ TestInitializeAttribute uwidacznia następujące elementy członkowskie.

Konstruktorzy

  Nazwa Opis
Metoda publiczna TestInitializeAttribute Inicjuje nowe wystąpienie TestInitializeAttribute klasy.

Początek

Właściwości

  Nazwa Opis
Właściwość publiczna TypeId Po wdrożeniu w klasie pochodnej, pobiera identyfikator unikatowy dla tego Attribute. (Odziedziczone z Attribute).

Początek

Metody

  Nazwa Opis
Metoda publiczna Equals Infrastruktura. Zwraca wartość wskazującą, czy to wystąpienie jest równe podanemu obiektowi. (Odziedziczone z Attribute).
Metoda publiczna GetHashCode Zwraca kod skrótu dla tego wystąpienia. (Odziedziczone z Attribute).
Metoda publiczna GetType Gets the Type of the current instance. (Odziedziczone z Object).
Metoda publiczna IsDefaultAttribute Po zastąpieniu w klasie pochodnej, wskazuje, czy wartość to wystąpienie jest wartością domyślną dla klasy pochodnej. (Odziedziczone z Attribute).
Metoda publiczna Match Po zastąpieniu w klasie pochodnej, zwraca wartość wskazującą, czy to wystąpienie jest równa określonego obiektu. (Odziedziczone z Attribute).
Metoda publiczna ToString Returns a string that represents the current object. (Odziedziczone z Object).

Początek

Jawne implementacje interfejsu

  Nazwa Opis
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_Attribute#GetIDsOfNames Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_Attribute#GetTypeInfo Pobiera informacje o typie dla obiektu, który można uzyskać informacji o typie dla interfejsu. (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_Attribute#GetTypeInfoCount Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone z Attribute).
Jawna implementacja interfejsuMetoda prywatna System#Runtime#InteropServices#_Attribute#Invoke Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone z Attribute).

Początek

Uwagi

Uruchomić test ładowania, metody, z tym atrybutem będzie uruchamiane raz dla każdej iteracji wirtualnego użytkownika w badaniu.Wystarczy raz wykonać inicjowania operacji, które stosują się do całego badania, użyj ClassInitializeAttribute.

Kolejność, w jakiej metody, które będą uruchamiane jest:

  1. Metody oznaczone AssemblyInitializeAttribute.

  2. Metody oznaczone ClassInitializeAttribute.

  3. Metody oznaczone TestInitializeAttribute.

  4. Metody oznaczone TestMethodAttribute.

Ten atrybut może być określona w metody.Tylko jedno wystąpienie tego atrybutu, mogą być stosowane do metody.

Ten atrybut jest używany domyślnie w wygenerowanym kodzie.

Aby uzyskać więcej informacji na temat przy użyciu atrybutów, zobacz Rozszerzanie metadanych za pomocą atrybutów.

Przykłady

Obszar nazw SampleClassLib zawiera klasy DivideClass, który z kolei zawiera metody, którą chcemy, aby przetestować.Metoda ta nosi nazwę 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

W poniższym kodzie klasy testowej DivideClassTest zawiera metody badania, o nazwie DivideMethodTest.Ten kod zawiera także atrybuty, które kontrolować kolejność wykonywania inicjowania i oczyszczania dla metody klasy i montażu.

W szczególności należy zwrócić uwagę, atrybut TestInitialize w metodzie 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

Bezpieczeństwo wątku

Wszystkie publiczne static (Shared w języku Visual Basic) elementy członkowskie tego typu są bezpieczne dla wątków. Wystąpienia elementów członkowskich nie dają gwarancji bezpieczeństwa wątków.

Zobacz też

Informacje

Przestrzeń nazw Microsoft.VisualStudio.TestTools.UnitTesting