Usando a Classes Assert

Use as classes Assert do namespace UnitTestingFramework para verificar a funcionalidade específica.Um método de teste de unidade executa o código de um método no seu código de desenvolvimento, mas ele reporta sobre aspectos do comportamento do código somente se você incluir instruções Assert.

Observação:

Com ou sem instruções Assert, testes de unidade podem gerar dados de cobertura de código.Para obter mais informações, consulte Como: Obter dados de cobertura de código.

Tipos de Asserts

The Microsoft.VisualStudio.TestTools.UnitTesting namespace fornece vários tipos de classes Assert:

Assert

No seu método de teste, você pode chamar qualquer número de métodos da classe Assert, tais como Assert.AreEqual().A classe Assert tem vários métodos disponíveis, e muitos desses métodos têm várias sobrecargas.

CollectionAssert

Use a classe CollectionAssert para comparar conjuntos de objetos, e para verificar o estado de uma ou mais coleções.

StringAssert

Use a classe StringAssert para comparar strings.Essa classe contém uma variedade de métodos úteis, como StringAssert.Contains, StringAssert.Matches, e StringAssert.StartsWith.

AssertFailedException

A exceção AssertFailedException é lançada sempre que um teste falhar.Um teste falhará se ele expirar, lançar uma exceção inesperada, ou contiver uma instrução Assert que produz um resultado de falha.

AssertInconclusiveException

AssertInconclusiveException é lançada sempre que um teste produz um resultado inconclusivo.Normalmente, você adiciona uma instrução Assert.Inconclusive em um teste no qual você ainda está trabalhando para indicar que ele ainda não está pronto para ser executado.

Observação:

Uma estratégia alternativa deve ser marcar um teste que não está pronto para executar com o atributo Ignore.Entretanto, isso tem a desvantagem de você não poder gerar facilmente um relatório sobre o número de testes que você tenha deixado de implementar.

UnitTestAssertException

Se você escrever uma nova classe de exceção Assert, se essa classe herdar da classe base UnitTestAssertException, é mais fácil identificar a exceção como um erro de declaração em vez de uma exceção inesperada lançada de seu código de teste ou produção.

ExpectedExceptionAttribute

Decore um método teste com o atributo ExpectedExceptionAttribute quando você desejar que o método teste verifique que uma exceção que você espera que seja lançada por um método no seu código desenvolvimento seja, na verdade, lançada nesse método.

Sobrecarregando Tipos Inseguros com Assert.AreEqual

O método Assert.AreEqual tem muitas sobrecargas que permitem que você compare tipos dados específicos.Entretanto, o método Assert.AreEqual não tem uma sobrecarga para tipos inseguros, tais como o tipo de dados ponteiro.

Para ilustrar isso, crie um aplicativo de console C# que contenha a seguinte classe:

unsafe public class CUnsafeTest

{

private int* m_pX = null;

unsafe public void VoidPtr(void* voidPtr)

{

}

unsafe public int* ReturnPointer(float* fPtr, TestThis* pTestThis)

{

int x = 5;

return &x;

}

}

Agora gere testes para a classe CunsafeTest.Para obter mais informações, consulte Como: Gerar um teste de unidade.Você verá código gerado semelhante ao exemplo a seguir:

[TestMethod()]

public void ReturnPointerTest()

{

unsafe

{

CodeGen.BVT.Unsafe.CUnsafeTest target;

target = new CodeGen.BVT.Unsafe.CUnsafeTest();

// TODO: Initialize to an appropriate value

System.Single* fPtr = null;

// TODO: Initialize to an appropriate value

TestThis* pTestThis = null;

// TODO: Initialize to an appropriate value

System.Int32* expected = null;

System.Int32* actual;

actual = target.ReturnPointer(fPtr, pTestThis);

Assert.AreEqual(actual, expected);

// On the preceding line, no overload is available.

}

}

Nesse caso, você deve substituir a instrução Assert.AreEqual pelo seu próprio código personalizado de verificação.

Consulte também

Conceitos

Testes de Unidade do Framework

Referência

Microsoft.VisualStudio.TestTools.UnitTesting