André Faria Gomes

JUnit 4 em 60 Segundos

Publicado por: andrefaria em: 22 Agosto 2008

Esse artigo que foi escrito por Abdullah Çetin ÇAVDAR em inglês, apresenta de forma simples e rápida como utilizar a nova API do JUnit. Veja também o artigo original.

Brinquei um pouco com JUnit 4  esse final final de semana, e aqui vai uma pequena introdução:

  1. @Test
    Anote seus testes com @Test. Você não precisa mais usar o prefixo test nos métodos de testes, e além disso, sua classe também não precisa mais extender TestCase.

    @Test
    public void addition() {
    assertEquals(12, simpleMath.add(7, 5));
    }

    @Test
    public void subtraction() {
    assertEquals(9, simpleMath.substract(12, 3));
    }
  2. @Before e @After
    Utilize as anottations @Before e @After para para “setup” e “tearDown” respectivamente. Eles serão executados antes e depois de cada um dos seus casos de testes.

    @Before
    public void runBeforeEveryTest() {
    simpleMath = new SimpleMath();
    }

    @After
    public void runAfterEveryTest() {
    simpleMath = null;
    }
  3. @BeforeClass e@AfterClass
    Utilize as annotations @BeforeClass e @AfterClass para “setup” e “tearDown” a nível de classe. Pense neles como “setup” e “teardown” que são executados apenas uma vez. Eles são executados antes e depois dos testes.

    @BeforeClass
    public static void runBeforeClass() {
    // executado uma vez antes de todos os testes serem executados
    }
    @AfterClass
    public static void runAfterClass() {
    // executado uma vez depois de todos os testes serem executados
    }
  4. Tratamento de Exceptions
    Utilize o parâmetro “expected” da annotation @Test para casos de uso que esperam exceptions. Escreva o nome da classe da Exception que deverá ser lançada.

    @Test(expected = ArithmeticException.class)
    public void divisionWithException() {
    // divisao por zero
    simpleMath.divide(1, 0);
    }
  5. @Ignore
    Use a annotation @Ignore para testes que você queira ignorar. Você pode adicionar um parâmetro String que defina o motivo pelo qual você está ignorando o teste.

    @Ignore("Não está pronto para ser executado")
    @Test
    public void multiplication() {
    assertEquals(15, simpleMath.multiply(3, 5));
    }
  6. Timeout
    O parâmetro “timeout” define o tempo máximo em milisegundos. O teste falha caso o período seja excedido.

    @Test(timeout = 1000)
    public void infinity() {
    while (true)
    ;
    }
  7. New Assertions
    Compare arrays com os novos métodos de asserção. Dois arrays são iguais quando tem o mesmo tamanho e cada elemento é igual ao correspondente no outro array.

    //public static void assertEquals(Object[] expected, Object[] actual);
    //public static void assertEquals(String message, Object[] expected, Object[] actual);

    @Test
    public void listEquality() {
    List expected = new ArrayList();
    expected.add(5);


    List actual = new ArrayList();
    actual.add(5);
    assertEquals(expected, actual);
    }

  8. JUnit4Adapter
    Rode os testes do JUnit 4 no JUnit 3 com o Junit4Adapter.

    public static junit.framework.Test suite() {
    return new JUnit4TestAdapter(SimpleMathTest.class);
    }

Boa Codificação!

2 Respostas para "JUnit 4 em 60 Segundos"

Parece que ficou bem simples implementar nossos métodos de testes, somente com as anottations.
Muito legal André.
Abraço.

Deixe um comentário

Anuncios

Add to Technorati Favorites

André’s Twitter


  • Fabiana: Eu Também só cheguei a ler esse post, por que estou lendo o livro de Harv Eker que se chama “Os segredos da mente milionária”. Um livro excelen
  • Rodolfo: Excelente André! Duas pessoas trabalhando juntas num mesmo computador, compartilhando código, idéias e soluções é muito mais produtivo e dinâm
  • Leandro Cesarini: Eu só cheguei a ler esse post, por que eu acabei de ler um livro de Harv Eker que se chama "Os segredos da mente milionária". Um livro excelente qu