ebooksgratis.com

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
JUnit - Wikipédia, a enciclopédia livre

JUnit

Origem: Wikipédia, a enciclopédia livre.

O JUnit é um framework open-source, criado por Eric Gamma e Kent Beck, com suporte à criação de testes automatizados na 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 podendo ser utilizado tanto para a execução de baterias de testes como para extensão.

Com JUnit, o programador tem uma ferramenta que o ajudará a eliminar os erros de seu código de maneira mais atraente. Pois, se criou uma forma interessante de realizar testes onde é possível a criação de programas que realizem os testes pelo programador. É utilizando esse conceito que JUnit permite deixar a fase de teste de unidades bem mais agradável ao programador.

O teste de unidade testa o menor dos componentes de um sistema de maneira isolada. Cada uma dessas unidades define um conjunto de estímulos (chamada de métodos), e de dados de entrada e saída associados a cada estímulo. As entradas são parâmetros e as saídas são o valor de retorno, exceções ou o estado do objeto. Tipicamente um teste unitário executa um método individualmente e compara uma saída conhecida após o processamento da mesma. Por exemplo:

Assert.assertEquals(2 == algumMetodo(1)); 

A expressão acima verifica se a saída de algumMetodo() é 2 quando esse método recebe o parâmetro 1. Normalmente o desenvolvedor já realiza testes semelhantes a esse pequeno exemplo, o que é chamado de testes unitários em linha. Assim sendo, o conceito chave de um teste de unidade é exercitar um código e qual o resultado esperado.

O JUnit permite a realização de testes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos e objetos.

Algumas vantagens de se utilizar JUnit:

  1. Permite a criação rápida de código de teste enquanto possibilita um aumento na qualidade do sistema sendo desenvolvido e testado;
  2. Não é necessário escrever o próprio framework;
  3. Amplamente utilizado pelos desenvolvedores da comunidade código-aberto, possuindo um grande número de exemplos;
  4. Uma vez escritos, os testes são executados rapidamente sem que, para isso, seja interrompido o processo de desenvolvimento;
  5. JUnit checa os resultados dos testes e fornece uma resposta imediata;
  6. Pode-se criar uma hierarquia de testes que permitirá testar apenas uma parte do sistema ou todo ele;
  7. Escrever testes com JUnit permite que o programador perca menos tempo depurando seu código;
  8. JUnit é LIVRE.

A experiência adquirida com o JUnit tem sido importante na consolidação do Test Driven Development (desenvolvimento direcionado à testes). Além disso, ele foi adaptado à outras linguagens, tais como C_sharp(NUnit), Python, Fortran, e C++.

[editar] Exemplos de Código

Caso de teste bem simples para mostrar como o JUnit 3.8 funciona:

import junit.framework.TestCase;

// Todo caso de teste deve herdar características de TestCase.
public class SampleTest extends TestCase {

    private java.util.List<Object> listaVazia;

    /**
     * Este método será chamado antes de cada método de teste.
     */
    protected void setUp() {
        listaVazia = new java.util.ArrayList<Object>();
    }    

    /**
     * Após cada método de teste, este método é invocado para limpar o lixo.
     */
    protected void tearDown() {
        listaVazia = null;
    }

    /**
     * Todo método que começar com a palavra "test" será executado pelo JUnit.
     * O método testComportamento faz uma chamada ao método assertEquals(mensagem, valor
     * esperado, valor atual) que verfica se o resultado de "listaVazia.size()" (tamanho da
     * lista) é igual a 0 (zero) que é o valor esperado, caso contrário emite a mensagem.
     */
    public void testComportamento() {
        assertEquals("A lista vazia deve ter 0 elementos", 0, listaVazia.size());
    }

    /**
     * Este método está testando a exceção. Ela deve ser lançada, pois não existe
     * nenhum item na lista. Caso contrário a implementação tem problemas.
     */
    public void testForException() {
        try {
            Object o = listaVazia.get(0);
            fail("Deve levantar uma IndexOutOfBoundsException");
        } catch (IndexOutOfBoundsException success) {}
    }
}

O mesmo teste para JUnit 4.0:

import org.junit.Assert;
import org.junit.Test;
import org.junit.Before;
import org.junit.After;

// Não necessita herdar nada.
public class SampleTest {

    private java.util.List<Object> listaVazia;

    /**
     * Este método será chamado antes de cada método de teste.
     */
    @Before
    protected void inicializar() {
        listaVazia = new java.util.ArrayList<Object>();
    }    

    /**
     * Após cada método de teste, este método é invocado para limpar o lixo.
     */
    @After
    protected void terminou() {
        listaVazia = null;
    }

    /**
     * Todo método que começar com a palavra "test" será executado pelo JUnit.
     * O método testComportamento faz uma chamada ao método assertEquals(mensagem, valor
     * esperado, valor atual) que verfica se o resultado de "listaVazia.size()" (tamanho da
     * lista) é igual a 0 (zero) que é o valor esperado, caso contrário emite a mensagem.
     */
    @Test
    public void comportamento() {
        Assert.assertEquals("A lista vazia deve ter 0 elementos", 0, listaVazia.size());
    }

    /**
     * Este método está testando a exceção. Ela deve ser lançada, pois não existe
     * nenhum item na lista. Caso contrário a implementação tem problemas.
     */
    @Test(expected=IndexOutOfBoundsException.class)
    public void lancarException() {
        listaVazia.get(0);
    }
}

Exemplo de classe de testes usando versões anteriores a 3.8:

import junit.framework.TestCase;

public class TesteMultiplica extends TestCase {
    public void testMultiplication() {
        // Testando se 2*2=4:
        assertEquals("Multiplica", 4, 2 * 2);
    }
}

O Mesmo exemplo utilizando o JUnit 4.0:

import org.junit.Assert;
import org.junit.Test;

public class TesteMultiplica {
    @Test
    public void testMultiplication() {
        // Testando se 2*2=4:
        Assert.assertEquals("Multiplica", 4, 2 * 2);
    }
}

[editar] Ligações externas

[editar] Ferramentas complementares


  Este artigo é um esboço sobre Informática. Pode ajudar a Wikipédia expandindo-o.


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -