JUnit – Testes Unitários – Java

Publicado: 27 de novembro de 2014 em Java

A maioria das metodologias disponíveis para o desenvolvimento de software e gerenciamento de projetos incluem como pratica básica essencial o desenvolvimento e execução de testes unitários para que um projeto de desenvolvimento possa passar para próxima fase.

Uma boa execução de um projeto bem elaborado em diversas metodologias utilizam ambientes e exigem que os testes unitários sejam executados no ambiente de desenvolvimento (DEV) utilizando uma ferramenta para este proposito e reexecutados por consultores funcionais/testadores, na fase de testes unitários no ambiente real de qualidade (QAS) para que só então possam executar a fase de testes integrados antes de aprovarem e homologarem o software para utilização em um ambiente produtivo (PRD).

O teste unitário executado do ponto de vista do setor de qualidade (QAS) é feito validando todas as partes dos software, incluindo, design intuitivo, usabilidade, teclas de atalho, layouts, grafia, links e etc. É claro que existem algumas diferenças sutis entre metodologias, como um ou outro procedimento ou diferentes nomenclaturas mas no final todas possuem o mesmo proposito, um software de qualidade, livre de erros e dentro do orçamento inicial do projeto. Bem! No mundo real, não importa qual a metodologia escolhida, isto nem sempre é possível.

JUnit

O JUnit é um framework de código aberto, com suporte à criação de testes unitários para linguagem de programação Java. Esse framework facilita a criação de código para a automação de testes com apresentação dos resultados. Com ele, pode ser verificado se cada método de uma classe funciona da forma esperada, exibindo possíveis erros ou falhas.

JUnit: http://junit.org/

Executando Testes Unitários no Eclipse

1 – Crie um projeto Java SE no Eclipse e crie uma classe chamada de Participante dentro de um pacote chamado org.desenvolvimento.aberto. Utilize o código abaixo para preencher o código da classe que acabou de criar. Crie uma nova pasta chamada test para código escolhendo a opção: File->New->Source Foulder:

Source Folder

Source Folder

2 – Após criar a pasta de teste crie também o mesmo pacote para a pasta de teste:

Package

Package

3 – Clique com o botão direito em cima do pacote que acabou de criar e escolha a opção: New->JUnit Test Case. Defina o nome da classe como ParticipanteTeste e na opção Class Under Test escolha a classe Participante e clique em próximo:

JUnit Test Case

JUnit Test Case

4 – Para escolher os métodos da classe para teste sempre escolha somente os construtores da classe (caso haja construtores Overload) e os métodos Setters, não escolheremos os métodos Getters pois os utilizaremos para testar os métodos Setters no caso de teste:

Métodos para teste

Métodos para teste

5 – Após clicar em Finish, quando você utiliza o JUnit pela primeira vez você precisa adicionar a biblioteca do Framework JUnit no Build Path do Eclipse, você pode fazer isto de vários modos, o mais fácil é clicando em OK na próxima janela:

JUnit - Build Path

JUnit – Build Path

6 – Uma classe de testes foi criada para você com métodos ainda não implementados, no qual precisamos implementar para que possamos executar com sucesso os testes unitários. Na barra de ferramentas escolha Run As e clique na opção: JUnit Test:

Compilar Classe de Teste

Compilar Classe de Teste

7 – Como ainda não implementamos os métodos para garantir que nossa classe que está sobre testes tenha sucesso, vamos obter um erro na aba JUnit que aparecerá do lado esquerdo ao lado da aba de exploração do projeto:

JUnit - Erro

JUnit – Erro

8 – Para implementar os métodos de teste na classe de teste, precisamos instanciar o objeto da classe que será testada, alimentar um valor em seu método Setter e depois comparar o valor alimentado com o valor retornado pelo método Getter, deste modo confirmamos que todos os métodos do objeto sejam testado. Utilize o código abaixo para implementar sua classe de testes e compile novamente a classe de teste:

Teste Unitário - OK

Teste Unitário – OK

Exemplo:

Neste exemplo criamos uma simples classe com métodos Getters e Setters e uma classe de caso de teste para efetuar um teste unitário nos métodos criados.

Java

Classe – Participante

package org.desenvolvimento.aberto;

public class Participante {

	// Declara atributos da classe
	private String nome;
	private int idade;

	// Declara métodos Getter e Setter da classe
	public String getNome()
	{
		return nome;
	}

	public void setNome(String nome)
	{
		this.nome = nome;

          // Troque a linha acima por: nome = this.nome;
          // funciona na sintaxe mas não passa no teste unitário
          // pois é erro básico de logica e pode ser escrito em
          // um momento de desatenção.

	}

	public int getIdade()
	{
		return idade;
	}

	public void setIdade(int idade)
	{
		this.idade = idade;
	}

}

JUnit Test Case – ParticipanteTeste

package org.desenvolvimento.aberto;

import static org.junit.Assert.*;

import org.junit.Test;

public class ParticipanteTeste {

	@Test
	public void testSetNome()
	{
		// Implementa método de teste unitário: Nome
		Participante p1 = new Participante();
		p1.setNome("Jose");
		assertEquals("Jose", p1.getNome());
	}

	@Test
	public void testSetIdade()
	{
		// Implementa método de teste unitário: Idade
		Participante p2 = new Participante();
		p2.setIdade(20);
		assertEquals(20, p2.getIdade());
	}

}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s