450 likes | 570 Views
Plano de teste. JUnit. O que é e para que serve?. framework para desenvolvimento e execução de testes de unidade em programas Java. Onde Encontrar?. http://junit.org/ O Eclipse já vem com o JUnit. Como configurar?. Adicionar o junit . jar ao projeto No Eclipse
E N D
O que é e para que serve? • framework para desenvolvimento e execução de testes de unidade em programas Java.
Onde Encontrar? • http://junit.org/ • O Eclipse já vem com o JUnit.
Como configurar? • Adicionar o junit.jar ao projeto • No Eclipse Project > Properties > Java Build Path > Libraries > Add Library > JUnit
Como Implementar? • Classes de Teste devem herdar de TestCase. importjunit.framework.TestCase; • Métodos de teste devem começar com o prefixo “test” publicvoidsetUp() {...} publicvoidtestxxx() {...} publicvoidtearDown() {...}
Pergunta? • Todos as classes de teste devem herdar de TestCase? • Todos os métodos devem ter em seu nome o prefixo “test”?
Nova Implementação • A partir do JUnit 4 pode-se escolher não utilizar herança da classe TestCase e o prefixo “test” dos métodos.
@Test •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 publicvoid somar() { assertEquals(12, simpleMath.add(7, 5)); } @Test publicvoid subtrair() { assertEquals(9, simpleMath.substract(12, 3)); }
@Before e @After • 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 publicvoidexecuteAntesCadaTeste() { simpleMath = newSimpleMath(); } @After publicvoidexecuteDepoisCadaTeste() { simpleMath = null; }
Teste de Tempo • 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) publicvoidbuscaTodasAsNovelas(){ novelas.buscaTodas(); }
Imports • importorg.junit.Test; • importstaticorg.junit.Assert.*;
Método suite //JUnit 3 • publicstaticTestSuitesuite() { • returnnewTestSuite(SuaClasseTest.class); • } • //JUnit 4 • public static junit.framework.Testsuite() { • returnnew JUnit4TestAdapter(SuaClasseTest.class); • }
TestSuite importjunit.framework.Test; importjunit.framework.TestSuite; publicclassTesteGeral{ publicstaticTestsuite() { TestSuitesuite = newTestSuite(); suite.addTest(SuaClasseTeste.suite()); returnsuite; } }
TestRunner • Aplicação em modo texto ou gráfico para execução de testes
Resultado dos Testes • SUCESSO • FALHA • ERRO
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
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
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.
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. Analysis
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. Import/Export
http://www.oncast.com.br/blog/?p=23 • http://www.eclemma.org/index.html • http://tinyurl.com/ygut9v4