C# - XUnit Básico
Neste artigo veremos um resumo básico sobre o XUnit. |
A realização de testes de unidade é uma abordagem de teste de software que é executada em tempo de desenvolvimento para testar o menor componente de qualquer software.
Significa que ao invés de testar o sistema todo uma só vez, você testa pequenas
partes do software. Com isso estamos nos referindo a testar funções,
propriedades, métodos ou qualquer classe que esteja manipulando uma
funcionalidade da aplicação.
Criar casos de teste de unidade nos ajudam a testar e descobrir se a unidade
individual está executando a tarefa de uma maneira boa ou não. Eles basicamente
nos garante que o sistema é projetado de acordo com os requisitos e nos ajuda a
descobrir os erros antes de colocar o código real no ambiente de produção.
A seguir temos algumas das vantagens em realizar testes de unidades:
Antes de partimos para a prática vejamos algumas dicas úteis para escrever os casos de teste:
Na plataforma .NET temos 3 opções de frameworks disponíveis para realizar testes de unidade :
Agora vejamos uma aplicação prática usando um projeto Console na linguagem C# e o framework XUnit.
XUnit - Conceitos básicos
No xUnit precisamos decorar os métodos de teste com o atributo [Fact], que é usado pelo xUnit para marcar os métodos de testes. Além dos métodos de testes, também podemos ter vários métodos auxiliares na classe de teste.
Com o XUnit para tornar um método comum em método de testes basta adicionar [Fact] ou [Theory] acima de sua assinatura, os atributos diferem apenas no seguinte, para testes sem parâmetros deve-se usar [Fact], para testes como parâmetros utiliza-se o [Theory].
O atributo [Theory] indica um teste parametrizado que é verdadeiro para um subconjunto de dados. Esses dados podem ser fornecidos de várias maneiras, mas o mais comum é com um atributo [InlineData]. Assim este atributo permite executar um método de teste várias vezes passando diferentes valores a cada vez como parâmetros.
Podemos ainda desativar um teste por qualquer motivo. Para isso basta definir a propriedade Skip no atributo Fact com o motivo que você desativou o teste (o motivo não é exibido).
[Fact(Skip = "Teste ainda não disponível")]
public void Teste()
{
}
|
Á medida que o número de seus testes aumenta, você pode organizá-los em grupos para que poder executar os testes juntos. O atributo [Trait] permite organizar os testes em grupos, criando nomes de categoria e atribuindo valores a eles.
[Fact(DisplayName = "Teste Numero 2")] [Trait("Calculo", "Somar")] public void Somar_DoisNumeros_RetornaNumero() { } |
No Test Explorer, este teste aparecerá sob o título Calculo[Somar] (cada combinação Name/Value aparece como um cabeçalho separado no Test Explorer).
Ao escrever testes unitários, em geral seguimos o princípio
AAA : Act, Arrange e
Assert (Organizar, Agir e Assertir):
Arrange - É aqui que você normalmente prepara tudo
para o teste, em outras palavras, prepara a cena para testar (criar os
objetos e configurá-los conforme necessário)
Act - É onde o método que estamos testando será
executado;
Assert - Esta é a parte final do teste em que
comparamos o que esperamos que aconteça com o resultado real da execução do
método de teste;
Os nomes dos métodos de teste devem ser tão descritivos quanto possível. Na
maioria dos casos, é possível nomear o método para que nem seja necessário ler o
código real para entender o que está sendo testado.
No exemplo, usamos a seguinte convenção de nomenclatura :
1 - A primeira parte do nome representa o nome do método
que está sendo testado;
2- A segunda parte do nome nos informa mais sobre o cenário de teste;
3- A última parte do nome é o resultado esperado;
Exemplo : Soma_DoisNumerosInteiros_RetornaNumeroInteiro
Temos assim uma apresentação dos principais recursos do XUnit para realização de testes de unidade.
Em outro artigo veremos como realizar testes de unidade usando o XUnit.
"Disse-lhes, pois, Jesus: Quando levantardes o Filho do homem, então conhecereis
que EU SOU, e que nada faço por mim mesmo; mas isto falo como meu Pai me
ensinou."
João 8:28
Veja os
Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique
e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ? |
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Testes de Software - Criando e Executando testes unitários ... - Macoratti
Visual Studio - Criando testes unitários - Macoratti
VB .NET - TDD - Test Drive Development - Macoratti
.NET - Usando MOQ em testes unitários - I - Macoratti
Testes de Software - Macoratti
Testes em desenvolvimento de Software - Macoratti
Eng, de Software - Macoratti