JUnit: framework de testes
unitários

    Fred Lopes
Agenda

   Parte 1 - teoria
       Testes unitários
       JUnit
           Introdução
           Arquitetura
       ...
Testes unitários

   Fase do processo de teste em que se testam as menores
    unidades de software desenvolvidas
      ...
JUnit - introdução

   Framework (arcabouço) livre para testes
    automatizados escrito em Java
   Escrito originalment...
JUnit - introdução

   Vantagens
       Permite a criação rápida de código de teste possibilitando um
        aumento na...
JUnit - arquitetura
JUnit - arquitetura

   Classe TestCase
       run() – Cria um contexto (método setUp); em seguida executa o
        cód...
JUnit – API resumida
Método               Descrição              Teste passa se
assertEquals(a,b)    Compara dois valores ...
JUnit – boas práticas

   Test Case Class: [NomeClasse]Test.java,
    onde NomeClasse é o nome da classe a ser
    testad...
JUnit – exemplo de uso
import junit.framework.TestCase;

/**
 * Testes de unidade para a classe {@link Pessoa}
 */
public ...
JUnit – exemplo de uso
/**
  * Um teste de unidade para verificar se os nulos são
  * tratados corretamente
  */
  public ...
JUnit – exemplo de uso

   Fixture: Conjunto de dados de teste e objetos
    utilizados na execução de um ou mais testes
...
JUnit – exemplo de uso
public class TesteSimples extends TestCase {
        private Collection colecao;
        protected ...
JUnit – exemplo de uso

   Possível ordem de execução:
    
        setUp()
       testColecaoComUmItem()
       te...
JUnit – Eclipse

   Agora vamos ver exemplos reais
    funcionando...
Upcoming SlideShare
Loading in...5
×

JUnit: framework de testes unitários

1,724

Published on

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,724
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
72
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

JUnit: framework de testes unitários

  1. 1. JUnit: framework de testes unitários Fred Lopes
  2. 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. 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. 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. 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. 6. JUnit - arquitetura
  7. 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. 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. 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. 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. 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. 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. 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(quot;itemAquot;); assertEquals(1, contatos.size()); } }
  14. 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. 15. JUnit – Eclipse  Agora vamos ver exemplos reais funcionando...
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×