Classe ClassCleanupAttribute
Identifica um método que contém o código para ser usado depois que todos os testes na classe de teste foram executados e liberar recursos obtidos pela classe de teste. Esta classe não pode ser herdada.
Hierarquia de herança
Object
Attribute
Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupAttribute
Namespace: Microsoft.VisualStudio.TestTools.UnitTesting
Assembly: Microsoft.VisualStudio.QualityTools.UnitTestFramework (em Microsoft.VisualStudio.QualityTools.UnitTestFramework.dll)
Sintaxe
'Declaração
<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple := False)> _
Public NotInheritable Class ClassCleanupAttribute _
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)]
public sealed class ClassCleanupAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Method, AllowMultiple = false)]
public ref class ClassCleanupAttribute sealed : public Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Method, AllowMultiple = false)>]
type ClassCleanupAttribute =
class
inherit Attribute
end
public final class ClassCleanupAttribute extends Attribute
O tipo ClassCleanupAttribute expõe os membros a seguir.
Construtores
Nome | Descrição | |
---|---|---|
![]() |
ClassCleanupAttribute | Inicializa uma nova instância da classe ClassCleanupAttribute. |
Superior
Propriedades
Nome | Descrição | |
---|---|---|
![]() |
TypeId | Quando implementada em uma classe derivada, obtém um identificador exclusivo para este Attribute. (Herdado de Attribute.) |
Superior
Métodos
Nome | Descrição | |
---|---|---|
![]() |
Equals | Infraestrutura. Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute.) |
![]() |
GetHashCode | Retorna o código hash desta instância. (Herdado de Attribute.) |
![]() |
GetType | Gets the Type of the current instance. (Herdado de Object.) |
![]() |
IsDefaultAttribute | Quando substituído em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.) |
![]() |
Match | Quando substituído em uma classe derivada, retorna um valor que indica se esta instância for igual a um objeto especificado. (Herdado de Attribute.) |
![]() |
ToString | Returns a string that represents the current object. (Herdado de Object.) |
Superior
Implementações explícitas da interface
Nome | Descrição | |
---|---|---|
![]() ![]() |
System#Runtime#InteropServices#_Attribute#GetIDsOfNames | Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de Attribute.) |
![]() ![]() |
System#Runtime#InteropServices#_Attribute#GetTypeInfo | Recupera as informações de tipo para um objeto, que pode ser usado para obter informações de tipo para uma interface. (Herdado de Attribute.) |
![]() ![]() |
System#Runtime#InteropServices#_Attribute#GetTypeInfoCount | Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.) |
![]() ![]() |
System#Runtime#InteropServices#_Attribute#Invoke | Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.) |
Superior
Comentários
O método marcado com esse atributo será executado depois de métodos marcados com o TestCleanupAttribute e antes do método marcado com AssemblyCleanupAttribute. Somente um método em uma classe pode ser decorado com esse atributo.
Importante
Esse atributo não deve ser usado no ASP.NET testes de unidade, ou seja, qualquer teste com [HostType("ASP.NET")] atributo.Devido à natureza sem estado do IIS e ASP.NET, um método decorado com esse atributo pode ser chamado mais de uma vez por execução de teste.
Esse atributo pode ser especificado em um método. Apenas uma instância desse atributo pode ser aplicada a um método.
Para obter mais informações sobre como usar os atributos, consulte Estendendo metadados por meio de atributos.
Exemplos
Os exemplos a seguir demonstram a inicialização e usados para indicar quais métodos devem ser executados pelo mecanismo de teste em diferentes períodos do teste de atributos de limpeza.
Os exemplos de código primeiro contêm uma classe e um método para testar. Para executar esse exemplo, crie um projeto de biblioteca de classes e substituir o código com o exemplo a seguir.
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
O exemplo a seguir contém código para testar o DivideMethod() encontrada nos exemplos de código anterior. Crie um projeto de teste e coloque o seguinte código em um documento de classe de teste. Adicione as referências apropriadas ao projeto. Esse código contém atributos que controlam a ordem de execução de inicialização e limpeza para o método, classe e assembly.
Em particular, observe o atributo ClassCleanup no método ClassCleanup ().
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
Acesso thread-safe
Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Consulte também
Referência
Namespace Microsoft.VisualStudio.TestTools.UnitTesting