Casos de teste JUnit em Java: Tutorial simples do JUnit 5.7.1 Hello World com detalhes de tudo em um

Publicados: 2019-10-30
java-junit-exemplo

O que é JUnit?

JUnit é uma estrutura de código aberto simples e poderosa para escrever e executar testes repetíveis. Eu amo os casos de teste JUnit. Durante o desenvolvimento do meu projeto Java, uso extensivamente o JUnit para cobertura de código. É uma instância da arquitetura xUnit para estruturas de teste de unidade.

Os recursos do JUnit incluem:

  1. Asserções para testar os resultados esperados
  2. Dispositivos de teste para compartilhar dados de teste comuns
  3. Corredores de teste para testes em execução

Neste tutorial, abordarei os pontos 1 e 3. Você precisa das dependências abaixo do maven em seu projeto.

Vamos começar a escrever código.

Passo 1

Crie o projeto CrunchifyJunitTest e especifique o pacote com.crunchify.junit . Aqui está uma estrutura de pacote para referência rápida.

Estrutura do Eclipse do Projeto Crunchify JUnit

Passo 2

Clique com o botão direito em CrunchifyJunitTest => New Class => CrunchifyJunitTest.java

Etapa 3

O Eclipse irá sugerir e adicionar automaticamente a dependência org.junit.Test assim que você digitar @Test .

Dependência Maven de Teste do Eclipse

Passo 4

Para testar seu teste JUnit

  • Clique com o botão direito na classe
  • Clique em Executar como
  • Clique em JUnit Test

Você deve ver algo assim.

Teste JUnit bem sucedido

Passo-5

Tente alterar o parâmetro do valor esperado do método de 30 => 300 e de Hello World => Hello -- World e teste novamente.

Falha no teste JUnit - Dicas do Crunchify

Passo-6

Agora vamos executar o mesmo caso de teste via other java . Criar CrunchifyRunnerJUnit.java

Passo-7

Execute CrunchifyRunnerJUnit.java como um Java Application .

Passo-8

No caso do 1st code (parâmetro esperado correto), você deve ver uma saída como esta:

Passo-9

No caso do 2nd code (parâmetro esperado incorreto), você deve ver algo assim:

E você está tudo pronto. Avise-me se encontrar algum problema ao executar este código.

Tutorial JUnit por Crunchify

Anotação disponível no testcase JUnit:

Anotação

Descrição

@Test public void method() A anotação @Test identifica que um método é um método de teste.
@Before public void method() Irá executar o método antes de cada teste. Este método pode preparar o ambiente de teste (por exemplo, ler dados de entrada, inicializar a classe).
@After public void method() Executará o método após cada teste. Este método pode limpar o ambiente de teste (por exemplo, excluir dados temporários, restaurar padrões).
@BeforeClass método void público() Irá executar o método uma vez, antes do início de todos os testes. Isso pode ser usado para realizar atividades demoradas, por exemplo, para se conectar a um banco de dados.
@AfterClass método void público() Executará o método uma vez, após a conclusão de todos os testes. Isso pode ser usado para realizar atividades de limpeza, por exemplo, para se desconectar de um banco de dados.
@Ignorar Ignorará o método de teste. Isso é útil quando o código subjacente foi alterado e o caso de teste ainda não foi adaptado. Ou se o tempo de execução deste teste for muito longo para ser incluído.
@Test (esperado = Exception.class) Falha, se o método não lançar a exceção nomeada.
@Test(tempo limite=100) Falha, se o método demorar mais de 100 milissegundos.

Métodos de Teste de Asserção Disponíveis:

Declaração

Descrição

falha(String) Deixe o método falhar. Pode ser usado para verificar se uma determinada parte do código não foi alcançada. Ou ter um teste com falha antes que o código de teste seja implementado.
assertTrue(true) / assertTrue(false) Será sempre verdadeiro/falso. Pode ser usado para predefinir um resultado de teste, se o teste ainda não estiver implementado.
assertTrue([mensagem], condição booleana) Verifica se a condição booleana é verdadeira.
assertsEquals([String message], esperado, real) Testa se dois valores são iguais. Nota: para arrays a referência é verificada e não o conteúdo dos arrays.
assertsEquals([String message], esperado, real, tolerância) Teste se os valores float ou double correspondem. A tolerância é o número de casas decimais que devem ser iguais.
assertNull([mensagem], objeto) Verifica se o objeto é nulo.
assertNotNull([mensagem], objeto) Verifica se o objeto não é nulo.
assertSame([String], esperado, real) Verifica se ambas as variáveis ​​se referem ao mesmo objeto.
assertNotSame([String], esperado, real) Verifica se ambas as variáveis ​​se referem a objetos diferentes.