Prof. Rodrigo Noll @ IFRS Canoas
@Test
public void testaMultiplica() {
// MyClass is tested
MinhaClasse tester = new MinhaClasse();
// Verifica se multiplica(10,5) retorna 50
assertEquals("10 x 5 deve ser 50", 50,
tester.multiplica(10, 5));
}
Anotação | Descrição |
---|---|
@Test public void method() | A anotação @Test identifica que o método é um método de teste. |
@Before public void method() | Este método é executado antes de cada teste. Este método pode ser utilizado para preparar os ambientes de teste (ler dados de entrada, inicializar classe). |
@After public void method() | Este método é executado após cada teste. Este método pode limpar o ambiente de teste (por exemplo, limpar dados temporários, restaurar valores padrões). Pode economizar memóroa limpando estruturas de memória caras. |
@BeforeClass public static void method() | Este método é executado apenas uma vez, antes de todos os testes iniciarem. Ele pode ser usado para executar atividades intensivas de tempo, como por exemplo, conectar com o banco. Métodos anotados com essa anotação necessitam ser definidos como estáticos para funcionar no Junit. |
Anotação | Descrição |
---|---|
@AfterClass public static void method() | Este método é executado apenas uma vez, após todos os testes terem sido concluídos. Ele é utilizado para atividades de limpeza de dados, por exemplo, desconectar do banco de dados. Métodos anotados com esta anotação devem ser estáticos para funcionar no Junit. |
@Ignore | Ignora um método de teste. Este método é útil quando o código original foi alterado e os testes não foram adaptados, ou o tempo de execução é muito longo para ser executado todas as vezes.. |
@Test (expected = Exception.class) | Falha se o método não lança uma exceção esperada (nomeada). |
@Test(timeout=100) | Falha se o teste leva mais que 100 milisegundos. |
try {
deveLancarUmaExcecao();
fail();
} catch (Exception e) {
// Experado
/* pode testar a mensagem para ver se foi lançada a exceção correta. */
}
Declaração | Descrição |
---|---|
fail(String) | Deixa o método falhar. Pode ser usado para verificar que uma parte do código não pode ser atingida ou ter um teste falhando antes da implementação do código de teste ser concluída. |
assertTrue([message], boolean condition) | Testa se uma condição booleana é verdadeira |
assertEquals([String message], expected, actual) | Testa se dois valores são os mesmos. Note: para arrays, a referência é verificada e não seu conteúdo |
assertEquals([String message], expected, actual, tolerance) | Testa se valores float (ou double) são iguais. A tolerância é que o número de decimais deve ser o mesmo. |
Declaração | Descrição |
---|---|
assertNull([message], object) | Verifica que um objeto é null. |
assertNotNull([message], object) | Verifica que um objeto não é null. |
assertSame([String], expected, actual) | Verifica que duas variáveis se referem a um mesmo objeto. |
assertNotSame([String], expected, actual) | Verifica que duas variáveis se referem a objetos diferentes. |
package br.edu.aulas;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({ MinhaClasseTest.class, MinhaSegundaClasseTest.class })
public class AllTests {
}
package br.edu.aulas;
public class Matematica {
public int multiplica(int x, int y) {
// O que segue é apenas um exemplo
if (x > 999) {
throw new IllegalArgumentException("X deve ser menor que 1000");
}
return x / y;
}
}
package br.edu.aulas;
import static org.junit.Assert.assertEquals;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
public class MatematicaTest {
Matematica matematica;
@Before
public void setup() {
matematica = new Matematica();
}
@BeforeClass
public static void testSetup() {
}
@AfterClass
public static void testCleanup() {
// Limpa os dados usados no Test Case
}
@Test(expected = IllegalArgumentException.class)
public void testaOLancamentoDaExcecao() {
matematica.multiplica(1000, 5);
}
@Test
public void testMultiplica() {
assertEquals("10 x 5 deve ser 50", 50, matematica.multiplica(10, 5));
}
}