JUnit: framework de testes unitários

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    JUnit: framework de testes unitários - Presentation Transcript

    1. JUnit: framework de testes unitários Fred Lopes
    2. Agenda  Parte 1 - teoria  Testes unitários  JUnit  Introdução  Arquitetura  API resumida  Boas práticas  Exemplos de uso  Parte 2 – prática (Eclipse)  Criando testes  Test Case  Test Suite  Executando testes
    3. Testes unitários  Fase do processo de teste em que se testam as menores unidades de software desenvolvidas  Objetivo  prevenir o aparecimento de bug’s oriundo de códigos mal escritos e garantir um nível de qualidade de produto durante o desenvolvimento de software  Responsabilidade do próprio desenvolvedor  Tipicamente executa um método individualmente  compara uma saída conhecida após o processamento da mesma  Não testam todo o software  Em POO: unidade pode ser um método, uma classe ou um objeto
    4. JUnit - introdução  Framework (arcabouço) livre para testes automatizados escrito em Java  Escrito originalmente por Kent Beck (Extreme Programming) e Erich Gamma (Design Patterns)  Integração com as principais IDEs  Grande comunidade de usuários  Utilizado principalmente no desenvolvimento de testes de unidade  http://www.junit.org
    5. JUnit - introdução  Vantagens  Permite a criação rápida de código de teste possibilitando um aumento na qualidade do desenvolvimento e teste;  Amplamente utilizado pelos desenvolvedores da comunidade código-aberto, possuindo um grande número de exemplos;  Uma vez escritos, os testes são executados rapidamente sem que, para isso, seja interrompido o processo de desenvolvimento;  JUnit checa os resultados dos testes e fornece uma resposta imediata;  JUnit é livre e orientado a objetos.  Pode verificar cada método de uma classe  Exibição de possíveis erros e/ou falhas
    6. JUnit - arquitetura
    7. JUnit - arquitetura  Classe TestCase  run() – Cria um contexto (método setUp); em seguida executa o código usando um contexto e verifica o resultado (método runTest); e por fim, limpa o contexto (método tearDown).  setUp() – Método chamado antes de cada método, pode ser utilizado para abrir uma conexão de banco de dados.  tearDown() – Método chamado depois de cada método de teste, usado para desfazer o que setUp() fez, por exemplo fechar uma conexão de banco de dados.  runTest() – Método responsável por controlar a execução de um teste particular.  Classe TestSuite  addTest() – Método responsável por adicionar um novo teste.
    8. JUnit – API resumida Método Descrição Teste passa se assertEquals(a,b) Compara dois valores a.equals(b) assertFalse(a) a == false Avalia uma expressão assertTrue(a) booleana a == true assertNotNull(a) a != null Compara uma variável assertNull(a) com nulo a == null assertNotSame(a,b) a == b Compara dois objetos assertSame(a,b) a != b fail() Causa uma falha no teste atual
    9. JUnit – boas práticas  Test Case Class: [NomeClasse]Test.java, onde NomeClasse é o nome da classe a ser testada.  Exemplo:  Classe: Pessoa  classe de teste: PessoaTest  Test Case Method: test[NomeMetodo], onde NomeMetodo é o método a ser testado.  Exemplo:  Método: Pessoa.calculaIdade()  PessoaTest.testCalculaIdade()
    10. JUnit – exemplo de uso import junit.framework.TestCase; /** * Testes de unidade para a classe {@link Pessoa} */ public class TestPessoa extends TestCase { /** * Um teste de unidade para verificar se o nome está * formatado corretamente */ public void testObterNomeCompleto() { Pessoa p = new Pessoa(“Fulano”, “Tal”); assertEquals(“Fulano Tal”, p.getNomeCompleto()); }
    11. JUnit – exemplo de uso /** * Um teste de unidade para verificar se os nulos são * tratados corretamente */ public void testNomeEhNulo() { Pessoa p = new Pessoa(null, “Tal”); assertEquals(“? Tal”, p.getNomeCompleto()); // Este código só é executado se passar pelo // assertEquals anterior. p = new Pessoa(“Fulano”, null); assertEquals(“Fulano ?”, p.getNomeCompleto()); } }
    12. JUnit – exemplo de uso  Fixture: Conjunto de dados de teste e objetos utilizados na execução de um ou mais testes  Para reaproveitar uma Fixture em mais de um teste:   Sobrescreva o método setUp() (inicialização) protected void setUp() { contatos = new ArrayList(); }  Sobrescreva o método tearDown() (limpeza) protected void tearDown() { contatos.clear(); }
    13. JUnit – exemplo de uso public class TesteSimples extends TestCase { private Collection colecao; protected void setUp() { contatos = new ArrayList(); } protected void tearDown() { contatos.clear(); } public void testColecaoVazia() { assertTrue(contatos.isEmpty()); } public void testColecaoComUmItem() { contatos.add(\"itemA\"); assertEquals(1, contatos.size()); } }
    14. JUnit – exemplo de uso  Possível ordem de execução:   setUp()  testColecaoComUmItem()  tearDown()  setUp()  testColecaoVazia()  tearDown()  Como os testes são chamados por reflexão, a ordem de execução dos testes pode não seguir o mesmo fluxo do código  Garantia: setUp() será executado antes e tearDown() será executado depois
    15. JUnit – Eclipse  Agora vamos ver exemplos reais funcionando...

    + adorepumpadorepump, 12 months ago

    custom

    400 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 400
      • 400 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 15
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories