Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale

Classe TestInitializeAttribute

Identifica il metodo da eseguire prima del test in modo da allocare e configurare le risorse necessarie a tutti i test nella classe di test. Questa classe non può essere ereditata.

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)

[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class TestInitializeAttribute : Attribute

Il tipo TestInitializeAttribute espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoTestInitializeAttributeInizializza una nuova istanza della classe TestInitializeAttribute.
In alto

  NomeDescrizione
Proprietà pubblicaTypeId Quando implementato in una classe derivata, ottiene un identificatore univoco per questo Attribute. (Ereditato da Attribute)
In alto

  NomeDescrizione
Metodo pubblicoEqualsInfrastruttura. Restituisce un valore che indica se questa istanza è uguale ad un oggetto specificato. (Ereditato da Attribute)
Metodo protettoFinalize Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object)
Metodo pubblicoGetHashCode Restituisce il codice hash per questa istanza. (Ereditato da Attribute)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoIsDefaultAttribute Quando viene eseguito l'override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute)
Metodo pubblicoMatch Quando viene eseguito l'override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.GetIDsOfNames Esegue il mapping di un set di nomi a un corrispondente set di identificatori di dispatch. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.GetTypeInfo Recupera le informazioni sui tipi per un oggetto, che possono essere utilizzate per ottenere informazioni sul tipo per un'interfaccia. (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.GetTypeInfoCount Recupera il numero di interfacce di informazioni sui tipi che un oggetto fornisce (0 o 1). (Ereditato da Attribute)
Implementazione esplicita dell'interfacciaMetodo privato_Attribute.Invoke Fornisce l'accesso alle proprietà ed ai metodi esposti da un oggetto. (Ereditato da Attribute)
In alto

Quando viene eseguito in un test di carico, il metodo contrassegnato con questo attributo verrà eseguito una volta per ogni iterazione di utente virtuale nel test. Se è necessario eseguire una volta le operazioni di inizializzazione che si applicano all'intero test, utilizzare la classe ClassInitializeAttribute.

L'ordine in cui verranno eseguiti i metodi è il seguente:

  1. Metodi contrassegnati con la classe AssemblyInitializeAttribute.

  2. Metodi contrassegnati con la classe ClassInitializeAttribute.

  3. Metodi contrassegnati con la classe TestInitializeAttribute.

  4. Metodi contrassegnati con la classe TestMethodAttribute.

È possibile specificare questo attributo su un metodo. È possibile applicare solo un'istanza di questo attributo a un metodo.

Questo attributo viene utilizzato per impostazione predefinita nel codice generato.

Per ulteriori informazioni sull'utilizzo di attributi, vedere Estensione di metadati mediante attributi.

Lo spazio dei nomi SampleClassLib contiene la classe DivideClass, che a sua volta contiene il metodo che si desidera sottoporre a test. Questo metodo è chiamato DivideMethod().

using System;
using System.Collections.Generic;
using System.Text;

namespace SampleClassLib
{
   public class DivideClass
   {
      public int DivideMethod(int a)
      {
         return 2 / a;
      }
   }
}

Nell'esempio di codice riportato di seguito la classe di test DivideClassTest contiene un metodo di test chiamato DivideMethodTest. Il codice contiene inoltre gli attributi che controllano l'ordine di esecuzione dell'inizializzazione e della pulitura per il metodo, la classe e l'assembly.

In particolare, notare l'attributo TestInitialize sul metodo 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);
      }
   }
}

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft