Movatterモバイル変換


[0]ホーム

URL:


Ir para o conteúdo
Wikipédia
Busca

JUnit

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

OJUnit é umframeworkopen-source, que se assemelha ao raio de testes software java, criado porErich Gamma eKent Beck, com suporte à criação de testes automatizados nalinguagem de programaçãoJava.

Esse framework facilita a criação e manutenção do 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 debaterias de testes como para extensão.

Com JUnit, o programador tem a possibilidade de usar esta ferramenta para criar ummodelo padrão de testes, muitas vezes de forma automatizada.

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 detestes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos eobjetos.

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 oJUnit tem sido importante na consolidação doTest Driven Development (desenvolvimento direcionado a testes). Além disso, ele foi adaptado a outras linguagens, tais comoC♯ (NUnit),Python,Fortran, eC++.

Exemplos de Código

[editar |editar código]

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

importjunit.framework.TestCase;// Todo caso de teste deve herdar características de TestCase.publicclassSampleTestextendsTestCase{privatejava.util.List<Object>listaVazia;/**  * Este método será chamado antes de cada método de teste.  */protectedvoidsetUp(){listaVazia=newjava.util.ArrayList<Object>();}/**  * Após cada método de teste, este método é invocado para limpar o lixo.  */protectedvoidtearDown(){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 verifica se o resultado de "listaVazia.size()" (tamanho da  * lista) é igual a 0 (zero) que é o valor esperado, caso contrário emite a mensagem.  */publicvoidtestComportamento(){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 existe  * nenhum item na lista. Caso contrário a implementação tem problemas.  */publicvoidtestForException(){try{Objecto=listaVazia.get(0);fail("Deve levantar uma IndexOutOfBoundsException");}catch(IndexOutOfBoundsExceptionsuccess){// Sucesso}}}

O mesmo teste para JUnit 4.0:

// imports reorganizados para a versão 4.0importorg.junit.Assert;importorg.junit.Test;importorg.junit.Before;importorg.junit.After;// Não necessita herdar nada.publicclassSampleTest{privatejava.util.List<Object>listaVazia;/**  * Este método será chamado antes de cada método de teste.  */@Beforeprotectedvoidinicializar(){listaVazia=newjava.util.ArrayList<Object>();}/**  * Após cada método de teste, este método é invocado para limpar o lixo.  */@Afterprotectedvoidterminou(){listaVazia=null;}/**  * Todo método com a anotação @Test será executado pelo JUnit.  * O método comportamento 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.  */@Testpublicvoidcomportamento(){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)publicvoidlancarException(){listaVazia.get(0);}}

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

importjunit.framework.TestCase;publicclassTesteMultiplicaextendsTestCase{publicvoidtestMultiplication(){// Testando se 2*2=4:assertEquals("Multiplica",4,2*2);}}

O Mesmo exemplo utilizando oJUnit 4.0:

importorg.junit.Assert;importorg.junit.Test;import staticorg.junit.Assert.assertEquals;publicclassTesteMultiplica{@Testpublicvoidmultiplication(){// Testando se 2*2=4:assertEquals("Multiplica",4,2*2);}}

Ligações externas

[editar |editar código]

Ferramentas complementares

[editar |editar código]
Ícone de esboçoEste artigo sobresoftware livre é umesboço. Você pode ajudar a Wikipédiaexpandindo-o.
Obtida de "https://pt.wikipedia.org/w/index.php?title=JUnit&oldid=71498053"
Categorias:
Categorias ocultas:

[8]ページ先頭

©2009-2026 Movatter.jp