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
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:
- Asserções para testar os resultados esperados
- Dispositivos de teste para compartilhar dados de teste comuns
- 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.
1 2 3 4 5 |
< dependency > < groupId > junit < / groupId > < artifactId > junit < / artifactId > < version > 4.12 < / version > < / dependency > |
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.

Passo 2
Clique com o botão direito em CrunchifyJunitTest
=> New Class => CrunchifyJunitTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
package com . crunchify . junit ; /** * @author Crunchify * */ import static org . junit . Assert . assertEquals ; import org . junit . Test ; public class CrunchifyJunitTest { @ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 30 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello + World" , helloWorld ( ) ) ; } public int addition ( int x , int y ) { return x + y ; } public String helloWorld ( ) { String helloWorld = "Hello +" + " World" ; return helloWorld ; } } |
Etapa 3
O Eclipse irá sugerir e adicionar automaticamente a dependência org.junit.Test
assim que você digitar @Test .

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.

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.
1 2 3 4 5 6 7 8 9 |
@ Test public void testingCrunchifyAddition ( ) { assertEquals ( "Here is test for Addition Result: " , 300 , addition ( 27 , 3 ) ) ; } @ Test public void testingHelloWorld ( ) { assertEquals ( "Here is test for Hello World String: " , "Hello -- World" , helloWorld ( ) ) ; } |

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
package com . crunchify . junit ; import org . junit . runner . JUnitCore ; import org . junit . runner . Result ; import org . junit . runner . notification . Failure ; /** * @author Crunchify * */ public class CrunchifyRunnerJUnit { public static void main ( String [ ] args ) { Result result = JUnitCore . runClasses ( CrunchifyJunitTest . class ) ; for ( Failure failure : result . getFailures ( ) ) { System . out . println ( failure . toString ( ) ) ; } if ( result . wasSuccessful ( ) ) { System . out . println ( "Both Tests finished successfully..." ) ; } } } |
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:
1 |
Both Tests finished successfully . . . |
Passo-9
No caso do 2nd code
(parâmetro esperado incorreto), você deve ver algo assim:
1 2 |
testingCrunchifyAddition ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Addition Result : expected : < 300 > but was : < 30 > testingHelloWorld ( com . crunchify . junit . CrunchifyJunitTest ) : Here is test for Hello World String : expected : < Hello [ -- ] World > but was : < Hello [ + ] World > |
E você está tudo pronto. Avise-me se encontrar algum problema ao executar este código.
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. |