testes de unidade em java: junit
TRANSCRIPT
![Page 1: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/1.jpg)
Java & JUnitProf. Dr. Ivan L. M. Ricarte
FT-UNICAMP
2017
![Page 2: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/2.jpg)
Objetivos
• Revisão da programação orientada a objetos com Java
• Apresentação do framework de teste de unidade JUnit
2017 Prof. Ivan Ricarte 2
![Page 3: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/3.jpg)
Estudo de caso
• Aplicação da vídeo-locadora (sim, coisa do passado...)
• Cliente (Customer) tem, além do nome (name), o registro de alugueis de filmes
• Para cada aluguel de filme, há a indicação do filme que foi alugado e o registro da quantidade de dias alugados (daysRented)
• Cada filme tem, além do título (title), uma categoria (priceCode) associada, que pode ser uma entre lançamento (NEW_RELEASE), comum (REGULAR) ou infantil (CHILDRENS)
• O método statement(), da classe Customer, gera o relatório (um objeto String) dos filmes alugados pelo cliente e o valor a ser pago
2017 Prof. Ivan Ricarte 3
![Page 4: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/4.jpg)
Utilizando a IDE (NetBeans)
2017 Prof. Ivan Ricarte 4
Diagrama UML
Código Java
![Page 5: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/5.jpg)
Novo projeto (Código Java)
2017 Prof. Ivan Ricarte 5
![Page 6: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/6.jpg)
2017 Prof. Ivan Ricarte 6
![Page 7: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/7.jpg)
2017 Prof. Ivan Ricarte 7
![Page 8: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/8.jpg)
2017 Prof. Ivan Ricarte 8
![Page 9: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/9.jpg)
Novo projeto (Diagrama UML)
2017 Prof. Ivan Ricarte 9
![Page 10: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/10.jpg)
2017 Prof. Ivan Ricarte 10
![Page 11: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/11.jpg)
2017 Prof. Ivan Ricarte 11
![Page 12: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/12.jpg)
2017 Prof. Ivan Ricarte 12
![Page 13: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/13.jpg)
2017 Prof. Ivan Ricarte 13
![Page 14: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/14.jpg)
Diagrama UML
2017 Prof. Ivan Ricarte 14
EasyUML/NetBeans
![Page 15: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/15.jpg)
Geração de código
2017 Prof. Ivan Ricarte 15
![Page 16: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/16.jpg)
2017 Prof. Ivan Ricarte 16
![Page 17: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/17.jpg)
2017 Prof. Ivan Ricarte 17
![Page 18: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/18.jpg)
2017 Prof. Ivan Ricarte 18
![Page 19: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/19.jpg)
2017 Prof. Ivan Ricarte 19
![Page 20: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/20.jpg)
2017 Prof. Ivan Ricarte 20
![Page 21: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/21.jpg)
Código gerado a partir do diagrama UML
2017 Prof. Ivan Ricarte 21
![Page 22: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/22.jpg)
2017 Prof. Ivan Ricarte 22
Obs.: sem atributo referencial para Movie
![Page 23: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/23.jpg)
2017 Prof. Ivan Ricarte 23
Obs.: sem atributo referencial para coleção de Rental, sem implementação do método
![Page 24: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/24.jpg)
Complementação do código
2017 Prof. Ivan Ricarte 24
Incluir operações para:
• Construir objeto com título e código;
• Obter título (não é alterado)
• Obter e alterar código
![Page 25: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/25.jpg)
2017 Prof. Ivan Ricarte 25
![Page 26: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/26.jpg)
2017 Prof. Ivan Ricarte 26
![Page 27: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/27.jpg)
2017 Prof. Ivan Ricarte 27
![Page 28: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/28.jpg)
2017 Prof. Ivan Ricarte 28
![Page 29: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/29.jpg)
2017 Prof. Ivan Ricarte 29
![Page 30: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/30.jpg)
2017 Prof. Ivan Ricarte 30
![Page 31: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/31.jpg)
2017 Prof. Ivan Ricarte 31
![Page 32: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/32.jpg)
2017 Prof. Ivan Ricarte 32
![Page 33: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/33.jpg)
2017 Prof. Ivan Ricarte 33
![Page 34: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/34.jpg)
2017 Prof. Ivan Ricarte 34
![Page 35: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/35.jpg)
2017 Prof. Ivan Ricarte 35
![Page 36: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/36.jpg)
2017 Prof. Ivan Ricarte 36
![Page 37: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/37.jpg)
2017 Prof. Ivan Ricarte 37
![Page 38: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/38.jpg)
2017 Prof. Ivan Ricarte 38
![Page 39: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/39.jpg)
2017 Prof. Ivan Ricarte 39
Para inserir os campos de tipo de filme:
![Page 40: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/40.jpg)
2017 Prof. Ivan Ricarte 40
![Page 41: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/41.jpg)
2017 Prof. Ivan Ricarte 41
![Page 42: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/42.jpg)
Similarmente, para a classe Rental
2017 Prof. Ivan Ricarte 42
Incluir campo (atributo referencial) para um objeto da classe Movie
Incluir operações para:
• Construir objeto com filme e dias de aluguel;
• Obter filme (não alterado)
• Obter dias de aluguel (não alterado)
![Page 43: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/43.jpg)
2017 Prof. Ivan Ricarte 43
![Page 44: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/44.jpg)
2017 Prof. Ivan Ricarte 44
![Page 45: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/45.jpg)
2017 Prof. Ivan Ricarte 45
![Page 46: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/46.jpg)
2017 Prof. Ivan Ricarte 46
![Page 47: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/47.jpg)
2017 Prof. Ivan Ricarte 47
![Page 48: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/48.jpg)
2017 Prof. Ivan Ricarte 48
![Page 49: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/49.jpg)
Como testar se as classes estão corretas?
Abordagem 1 (não recomendada): usar o método main
• Pode ser definido para cada classe
• Pode ter um teste que envolva mais de uma classe
2017 Prof. Ivan Ricarte 49
![Page 50: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/50.jpg)
Exemplo: um método main para Movie
2017 Prof. Ivan Ricarte 50
![Page 51: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/51.jpg)
Execução
2017 Prof. Ivan Ricarte 51
![Page 52: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/52.jpg)
2017 Prof. Ivan Ricarte 52
![Page 53: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/53.jpg)
2017 Prof. Ivan Ricarte 53
![Page 54: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/54.jpg)
Um main envolvendo Movie e Rental
2017 Prof. Ivan Ricarte 54
![Page 55: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/55.jpg)
2017 Prof. Ivan Ricarte 55
![Page 56: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/56.jpg)
2017 Prof. Ivan Ricarte 56
![Page 57: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/57.jpg)
Limitações dessa abordagem
Execução manual de cada método main
Verificação do resultado precisa de intervenção humana
2017 Prof. Ivan Ricarte 57
![Page 58: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/58.jpg)
Alternativa: teste automático
2017 Prof. Ivan Ricarte 58
![Page 59: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/59.jpg)
Teste de unidade
2017 Prof. Ivan Ricarte 59
![Page 60: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/60.jpg)
Princípios do teste de unidade
Abordagem de teste caixa-preta• Como o método foi implementado não é relevante
Testa um método de cada vez
Cada método X( ) será verificado por um método de teste(tipicamente, testX( )) que:
Cria as condições para invocar o método Invoca o método Verifica se resultado ou efeito foi o esperado
2017 Prof. Ivan Ricarte 60
![Page 61: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/61.jpg)
JUnit em NetBeans
2017 Prof. Ivan Ricarte 61
![Page 62: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/62.jpg)
Passo 1: Criar o conjunto de métodos de teste para uma classe
2017 Prof. Ivan Ricarte 62
![Page 63: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/63.jpg)
2017 Prof. Ivan Ricarte 63
![Page 64: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/64.jpg)
Opções de código gerado
2017 Prof. Ivan Ricarte 64
https://netbeans.org/kb/docs/java/junit-intro_pt_BR.html
![Page 65: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/65.jpg)
Código gerado
2017 Prof. Ivan Ricarte 65
![Page 66: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/66.jpg)
Implementação default
2017 Prof. Ivan Ricarte 66
Método que, quando executado, causa a falha do teste
Precisa ser substituído pelo “teste correto”
![Page 67: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/67.jpg)
Execução do teste
2017 Prof. Ivan Ricarte 67
![Page 68: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/68.jpg)
Resultado da execução com métodos fail()
2017 Prof. Ivan Ricarte 68
![Page 69: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/69.jpg)
Como verificar o resultado dos testes
O método fail() é um dos métodos de verificação de resultado de testes oferecido pelo framework Junit
• Sempre causa a falha do teste
• Usado, por exemplo, para indicar que código atingiu um ponto que não deveria ser alcançado em condições normais de execução
Além desse método, outros métodos de asserção são utilizados, tais como:
• assertEquals(): causa a falha do teste se os dois valores passados como argumentos não são iguais
• Dois valores: valor esperado, resultado da execução do teste
• assertTrue(): causa a falha do teste se a condição passada como argumento não for verdadeira
2017 Prof. Ivan Ricarte 69
![Page 70: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/70.jpg)
2017 Prof. Ivan Ricarte 70
![Page 71: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/71.jpg)
Outros métodos de asserção
Sempre com opção de ter string de mensagem como primeiro argumento:
• assertFalse(condição)
• assertArrayEquals(arrayEsperado, arrayObtido)
• assertNotEquals(valorNãoEsperado, valorObtido)
• assertNull(referenciaObtida)
• assertNotNull(referenciaObtida)
• assertSame(objetoEsperado, objetoObtido)
• assertNotSame(objetoNãoEsperado, objetoObtido)
Para valores e arranjos, há assinaturas para os diferentes tipos primitivos.
2017 Prof. Ivan Ricarte 71
![Page 72: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/72.jpg)
Corpo atualizado dos métodos de teste
2017 Prof. Ivan Ricarte 72
![Page 73: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/73.jpg)
Resultado da execução dos testes
2017 Prof. Ivan Ricarte 73
![Page 74: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/74.jpg)
2017 Prof. Ivan Ricarte 74
![Page 75: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/75.jpg)
2017 Prof. Ivan Ricarte 75
Detalhar
![Page 76: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/76.jpg)
2017 Prof. Ivan Ricarte 76
Uso do inicializador de testes
![Page 77: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/77.jpg)
Condições especiais de teste: timeout
2017 Prof. Ivan Ricarte 77
Tempo em milissegundos
https://netbeans.org/kb/docs/java/junit-intro_pt_BR.html
![Page 78: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/78.jpg)
Condições especiais de teste: exceções
2017 Prof. Ivan Ricarte 78
Classe da exceção que é esperada na execução do teste
https://netbeans.org/kb/docs/java/junit-intro_pt_BR.html
![Page 79: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/79.jpg)
Criando e executando conjuntos de testes
2017 Prof. Ivan Ricarte 79
![Page 80: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/80.jpg)
2017 Prof. Ivan Ricarte 80
![Page 81: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/81.jpg)
2017 Prof. Ivan Ricarte 81
![Page 82: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/82.jpg)
2017 Prof. Ivan Ricarte 82
![Page 83: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/83.jpg)
2017 Prof. Ivan Ricarte 83
![Page 84: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/84.jpg)
Para mais informação...
2017 Prof. Ivan Ricarte 84
![Page 85: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/85.jpg)
2017 Prof. Ivan Ricarte 85
...
...
![Page 86: Testes de unidade em Java: JUnit](https://reader033.vdocuments.pub/reader033/viewer/2022052318/5a67dc0a7f8b9ab9398b5421/html5/thumbnails/86.jpg)
2017 Prof. Ivan Ricarte 86