Documentação Teste Unitário
Esse projeto é uma série de documentações de ferramentas de teste unitário em diversas linguagens.
Projeto já adicionado aos favoritos. Clique aqui para ver todos seus favoritos
Obrigado pela sua avaliação, deixe o seu feedback nos comentários :D
Introdução
O Teste Unitário é uma metodologia de teste de software cuja filosofia baseia-se em dividir o código fonte em unidades e testá-las. Sua ideia central consiste em: se todas as unidades do sistema funcionarem como o esperado, logo o sistema como um todo funciona plenamente.
Geralmente, é essa a primeira abordagem em matéria de confecção de testes mais robustos e confiáveis que podemos adotar. A técnica consiste em testar as menores unidades possíveis de código da aplicação em cenários isoladamente em um projeto separado da aplicação principal, o que permite a manutenção e a escalabilidade dos testes paralelamente a aplicação.
Destaques do projeto
- Teste em PHP, Python, Javascript, Java e C# (.Net)
- Exemplos práticos
- Métodos de teste de diversas APIs
Por que teste unitário é importante?
Todo mundo testa, a diferença está na qualidade dos testes que são feitos. Muitos programadores, principalmente iniciantes, possuem o hábito de realizar seus testes junto do código fonte da aplicação seja fazendo breakpoints, imprimindo dados na tela ou simplesmente verificando a execução da aplicação. Essas formas de testar possuem uma série de problemas: não possuem uma boa cobertura do código sendo testado, pois os testes são perdidos conforme o código é posto em produção e são inseguros de uma forma geral conforme o software escala para um projeto de porte maior.
Glossário
Unidade
A unidade de trabalho pode ser definida como todo o processo executado quando um método de uma classe é chamado que termina em um resultado que pode ser comparado com um resultado esperado, esse resultado pode ser um valor de retorno, alteração num estado da classe ou a execução de outros métodos em uma ou mais dependências.
É o menor trecho de código testável da aplicação, alvo das implementações do teste unitário. A unidade é a parte mais importante do teste. A definição de unidade varia de acordo com o paradigma de programação sendo usado, podendo ser um método, uma função ou até mesmo um script de ações sendo executadas sequencialmente.
Classe de teste
É a classe onde os testes são escritos. Quando no contexto da arquitetura xUnit costuma herdar de TestCase. Classes de testes são criadas de forma que correspondem a classes de produção.
Assert
Assert vem do inglês assegurar e no contexto de teste unitário condiz ao ato de realizar o teste comparando o resultado ou comportamento do código sendo testado com o resultado ou comportamento desejado.
Dublê de teste
É um objeto usado para simular uma dependência do código sendo testado. O dublê é criado com o propósito de imitar um comportamento sem causar efeitos colaterais o que auxilia no isolamento dos testes sendo feitos.
Ambiente/Fixture
É o conjunto de configurações e/ou implementações que é compartilhado por vários testes de mesma classe. Geralmente ambientes são montados através de um método setUp e fechados por um método tearDown presente na ferramenta de teste unitário.
Suíte de testes
É o diretório ou caminho onde um determinado agrupamento de classes de teste se localizam. Geralmente usadas na proporção de uma suíte por aplicação, podendo haver diversas em grandes projetos.
Teste unitário é o mesmo que teste automatizado?
Teste unitário é uma forma de automatização de testes, porém não é a única. O teste unitário é o primeiro dos quatro níveis de teste de software (Teste Unitário, Teste de Integração, Teste de Sistema e Teste de Aceitação) servindo como base para a implementação dos demais métodos.