Skip to content

Tutorial simples de criação e execução de TDD automatizado usando JUnit. Trabalho para a disciplina de LPII do técnico em informática do CEFET-MG.

Notifications You must be signed in to change notification settings

IzabelaAAndrade/JUnit-Testes-Automatizados

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Tutorial: Testes Automatizados com JUnit

Tutorial simples de criação e execução de TDD automatizado usando JUnit. Trabalho prático realizado para a disciplina de LPII, no técnico em informática do CEFET-MG.

Introdução: JUnit

O JUnit é um framework amplamente utilizado para a execução de testes unitários, sendo bastante útil à implementação do sistema de TDD ou "Test Driven Development". Em sua versão mais recente (5) o JUnit possui três módulos essenciais:

  • JUnit Platform: Usado para o desenvolvimento e execução de frameworks.
  • JUnit Jupiter: Usado para a implementação e execução de testes.
  • JUnit Vintage: Usado para permitir a execução de códigos/testes feitos em versões anteriores do framework.

Mão na Massa: Passo a Passo

Para o desenvolvimento de testes automatizados utilizando JUnit, trabalharemos com Java e Maven, podendo ser utilizada uma IDE de preferência a qual tenha suporte a tais ferramentas. Aqui, farei uso do Intellij.

Criação do Projeto

  1. Inicialmente, deve ser feita a criação de um novo projeto (File > Novo > Projeto). Para as configurações iniciais, ir na aba "Maven" e selecionar a caixa "Create From Archetype".
  2. Criar o projeto Java normalmente, com o nome adequado ao projeto em desenvolvimento.
    image

Vinculando o JUnit

Para adicionar as dependências JUnit necessárias ao projeto, seguiremos alguns passos simples com base no site do próprio framework.

  1. Na página do framework, clique no botão "JUnit Jupiter" para realizar a vinculação deste módulo com o projeto em desenvolvimento.

image

  1. Na página seguinte, selecione a versão mais recente do JUnit e clique nos números que a descrevem. image

  2. Basta então copiar o código disponibilizado conforme a ferramenta auxiliar usada por você. O site do JUnit disponibiliza suporte a Maven, Groovy e Kotlin, mas aqui farei uso apenas do código Maven.
    image

  3. Por fim, deveremos colar o código em questão no arquivo pom.xml, dentro da tag "dependencies". Caso a mesma não exista, basta adicioná-la antes.
    image

Ajustes Maven

Para finalizar essa fase inicial de configuração do projeto, é necessário adicionar as ferramentas de build compatíveis com o Maven. Para tanto, basta adicionar o código da tag "build" disponibilizado na aba dedicada a Maven do site do JUnit no arquivo pom.xml.

image

Feito isso, é importante então compilar o projeto!

image

Processo TDD

Conforme mencionado anteriormente, a sigla TDD descreve uma técnica de desenvolvimento denominada "Test Driven Development" ou "Desenvolvimento Voltado a Testes". Adotado em paradigmas como a programação extrema (XP), o TDD se baseia na montagem primeiro dos testes a quais determinados códigos ou funcionalidades devem atender, antes da escrita do programa de fato.

Seguindo esta lógica, o TDD funciona através de um ciclo básico de três etapas.

  • Fase Vermelha: Inicialmente, elabora-se o teste unitário o qual será falho, afinal, não existirá ainda um "código" para passar por ele.
  • Fase Verde: Em sequência, é desenvolvido o programa o qual deverá atender ao teste criado, de modo a torná-lo bem sucedido.
  • Refatoração: Por fim, é feita a refatoração do código desenvolvido, de modo que ele possa ser melhorado conforme os pontos apontados no processo de teste, além de atender a padrões de implementação.

Exemplo TDD: Fórmula de Bhaskara

Agora, apresentarei um exemplo simples e rápido da implementação de um TDD usando JUnit.

Fase Vermelha

  1. Inicialmente, cria-se uma estrutura de pastas/pacotes padrão conforme o projeto. Para o meu caso, criei uma classe "Bhaskara" dentro do pacote "com.izabela", na qual implementarei o método a ser testado.

  2. O método em questão será o "calculaBhaskara", instanciado de maneira estática (para ser chamado sem necessidade de uma instância da classe) e possuindo como valor de retorno "-1". Este valor inicial foi estabelecido pois ainda não será feito nenhum código no interior do método, afinal, o TDD se baseia primeiro no desenvolvimento de um teste a ser atendido.
    image

  3. Criaremos agora a classe de teste referente à original Bhaskara. Para tanto, podemos clicar com o botão direito do mouse no nome da classe e então em "Go To > Test", conforme ilustrado abaixo. image

  4. Inicialmente, não existirá classe de teste, logo, deveremos efetuar sua criação conforme a janela pop-up. image

  5. Com a classe criada, deveremos implementar um ou mais casos de teste aos quais deverão ser atendidos. Conforme se sabe pela matemática, a fórmula de bháskara recebe três valores A, B e C os quais correspondem a incógnitas de uma equação de segundo grau e retorna as raízes da equação. Sabe-se que: A deve ser maior que zero (para que a equação seja do segundo grau) e que delta (b^2 - 4 . A . C) não deverá ser negativo para que as raízes sejam reais. Como queremos uma função com um único valor de retorno, será necessário que o valor de delta seja igual a zero, para que haja apenas um valor real. Ademais, precisaremos verificar se A é ou não diferente de zero. Projetaremos um teste para realizar estas aferições.

Fase Vermelha (Parte 2)

O teste mencionado é apresentado abaixo.
image Tem-se um conjunto de incógnitas as quais atendem ambas as demandas explicitadas no item anterior. Usa-se da assertiva "assertEquals" para verificar se o valor retornado pelo método calculaBhaskara corresponde ao valor esperado como solução. A notação @Test é usada antes do método para indicar que o mesmo corresponde a um método de teste.

Agora, executaremos a classe de teste mencionada através do comando "Run Bhaskara Test", que pode ser encontrado ao clicar no nome da classe que se deseja executar com o botão direito do mouse. image

Como resultado da execução, teremos que o teste falhou, exatamente como esperado, afinal, ainda não foi desenvolvido um código adequado para o cálculo de bháskara na classe Bhaskara. image

Fase Verde

Agora que já temos um caso de teste a ser atendido, usaremos as condições de validação do mesmo para elaborar a solução. Temos de garantir que:

  • A seja positivo
  • Delta seja igual a zero

Isso é feito através do código apresentado abaixo. Ao executá-lo, temos que o teste foi atendido, o que conclui a fase verde :) image

Refatoração

Agora que já temos um código que atende às nossas condições de teste, podemos partir para a fase final do nosso TDD: a refatoração. Nela aperfeiçoaremos o programa da classe Bhaskara para que ele se torne mais efetivo. No nosso caso, podemos fazer a fusão dos ifs apresentados, colocando o cálculo do delta no início do método, conforme apresentado abaixo. image

Agora é necessário apenas executar o teste novamente, verificando se ele irá passar! Conforme apresentado abaixo, vemos que sim, ele foi aprovado :) image

Conclusão

Encerramos aqui nosso pequeno exemplo de TDD com JUnit! Espero que você tenha gostado desse tutorial!

About

Tutorial simples de criação e execução de TDD automatizado usando JUnit. Trabalho para a disciplina de LPII do técnico em informática do CEFET-MG.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages