 framework
para desenvolvimento
e execução de testes de unidade
em programas Java.
 http://junit.org/
O
Eclipse já vem com o JUnit.
 Adicionar
 No
o junit.jar ao projeto
Eclipse
Project > Properties > Java Build
Path > Libraries > Add Library >
JUnit
 Classes
de Teste devem herdar de
TestCase.
import junit.framework.TestCase;
 Métodos
de teste devem começar
com o prefixo “test”
public void setUp() {...}
public void testxxx() {...}
public void tearDown() {...}
 Todos
as classes de teste devem
herdar de TestCase?
 Todos
os métodos devem ter em
seu nome o prefixo “test”?
A
partir do JUnit 4 pode-se
escolher não utilizar herança da
classe TestCase e o prefixo “test”
dos métodos.
•Os casos de teste agora são marcados
com as anotações @Test.
•Você não precisa mais colocar o
prefixo “test” nos métodos.
•Além disso, sua classe não precisa
herdar de “TestCase”.
@Test
public void somar() {
assertEquals(12, simpleMath.add(7, 5));
}
@Test
public void subtrair() {
assertEquals(9, simpleMath.substract(12, 3));
}
• Use as anotações @Before e @After para os
métodos “setup” e “tearDown”
respectivamente. Eles irão rodar antes e
depois de cada caso de teste.
• É possível ter quantos métodos @Before e
@After quiser.
@Before
public void executeAntesCadaTeste() {
simpleMath = new SimpleMath();
}
@After
public void executeDepoisCadaTeste() {
simpleMath = null;
}




Teste falha se demorar mais do que timeout
Útil para testes de redes e conexões com
bancos de Dados
Aplicações modernas existem tempo de
resposta máximo.
Testes de tempo garantem que o tempo de
resposta máximo seja satisfeito, mesmo que
o sistema se torne mais complexo
@Test(timeout=500)
public void buscaTodasAsNovelas(){
novelas.buscaTodas();
}
Método
Descrição
Teste passa se
assertEquals(a, b)
Compara dois valores
a.equals(b)
assertFalse(a)
Avalia uma expressão
booleana
a == false
Compara uma variável
com nulo
a != null
assertTrue(a)
assertNotNull(a)
assertNull(a)
assertNotSame(a, b)
assertSame(a, b)
fail()
Compara dois objetos
Causa uma falha no teste
atual
a == true
a == null
a == b
a != b
Não passa
 import
org.junit.Test;
 import
static org.junit.Assert.*;
//JUnit 3
public static TestSuite suite() {
return new TestSuite(SuaClasseTest.class);
}
//JUnit 4
public static junit.framework.Test suite() {
return new
JUnit4TestAdapter(SuaClasseTest.class);
}
import junit.framework.Test;
import junit.framework.TestSuite;
public class TesteGeral {
public static Test suite() {
TestSuite suite = new TestSuite();
suite.addTest(SuaClasseTeste.suite());
return suite;
}
}
 Aplicação
em
modo texto ou
gráfico para
execução de
testes



SUCESSO
FALHA
ERRO
Visão Geral
O EclEmma é um plugin para o Eclipse
que mede e apresenta a cobertura de
testes no próprio Eclipse.
 Os testes são executados no próprio
Eclipse e a apresentação dos trechos
cobertos e descobertos é integrada ao
editor Java.
 Baseado no EMMA, outra ferramenta de cobertura
de código Java, tentando adotar a filosofia de
Emma para a workbench do Eclipse:
 Rápido ciclo de desenvolvimento/teste: Inicia a
partir do workbench, como execuções de teste
JUnit podem ser analisados diretamente com
essa cobertura de código.
 Análise de cobertura: Na cobertura, os
resultados são imediatamente resumidos e
destacados nos editores de código fonte Java.
 Não-invasivos: EclEmma não requer modificar
seus projetos ou realizar qualquer outra
configuração.
Caracteristicas




Launching
Analysis
Import
Export
EclEmma acrescenta um modo de lançar
chamada para o workbench do Eclipse. Ele é
chamado de modo de Cobertura (Coverage
mode) e funciona exatamente como os modos
“Run” e “Debug”. A modalidade de
lançamento de cobertura pode ser ativada a
partir do menu Executar ou utilizando a barra
no workbench:
 Basta acessar suas aplicações ou testes de unidade no
modo de Cobertura para coletar informações de
cobertura. Atualmente, os tipos de lançamento a seguir
são suportados:
 Aplicação Java
 Eclipse / RCP Aplication
 Equinox OSGi Framework
 Junit Test
 Test TestNG
 plug-in Junit test
 JUnit RAP test
 SWTBot Test
Analysis
Após
a análise de sua aplicação ou teste de unidade foi
finalizado informações cobertura de código é
automaticamente disponível no workbench do Eclipse:
Resumo da Cobertura: A visão Cobertura(Coverage
view) listas resumos da cobertura para seus projetos de
Java, que permite drill-down para o nível de método.
Analysis
Fonte highlighting:
O resultado de um teste
com o Eclmma é
diretamente visível nos
editores fonte Java. Um
código de cores
totalmente
personalizáveis
destaca, em parte, e
não linhas cobertas.
Analysis
Recursos
Adicionais nos testes com o EclEmma:
Selecione instruções, linhas de código ou blocos,
métodos rapidamente
Várias sessões de cobertura: É possível alternar
entre os dados de cobertura de várias sessões.
Mesclar Sessões: Se vários trexos de código em
diferentes lugares devem ser considerados para a
cobertura de sessões de análise, eles podem ser
facilmente fundidos.
Import/Export
Enquanto
EclEmma concebido essencialmente para
a execução de teste e análise dentro da workbench do
Eclipse, ele fornece alguns importação / exportação
características.
Cobertura de importação de dados: Um assistente
permite importar arquivos *. CE lança cobertura de
dados externas.
Exportar relatório Cobertura: dados de cobertura
pode ser exportado como um arquivo *. CE ou no
formato XML ou HTML.
Instalação
http://www.oncast.com.br/blog/?p=23
 http://www.eclemma.org/index.html
 http://tinyurl.com/ygut9v4

Download

JUnit