Buscar

Introdução ao JUnit

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 21 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Presbiteriana Mackenzie
Introdução ao JUnit
Profa. Ana Cristina dos Santos
Faculdade de Computação e Informática
Linguagem de Programação I
1
Objetivos
• Praticar testes de implementação utilizando 
o framework JUnit;
• Formar um base prática de uso da classe 
String e seus objetos como motivadora para o 
estudo de orientação a objetos, com conceitos 
básicos como classes, objetos e métodos;
Introdução ao JUnit 2
Verificação de Implementações
• Até o presente momento, ainda não temos uma 
maneira muito efetiva para testar os programas 
que implementamos. 
• Verificamos nossas implementações através da 
impressão de informação relevante (?) na saída 
padrão (System.out).
• Nosso método de verificação contamina nossa 
implementação.
3Introdução ao JUnit
Exemplo 1
public class Exemplo {
public static boolean contem(String s,String t){
return s.contains(t);
}
public static void main(String[] args) {
String s = "Linguagem de Programação I";
String t = "Linguagem";
if (contem(s,t)){
System.out.println(“Funcionou!”);
} else {
System.out.println(“Não funcionou!”);
} 
}
}
4Introdução ao JUnit
E se...
• Tivéssemos outras funções/procedimentos além do contem? 
– Teríamos que criar mais blocos if-then-else no nosso main para 
verifica-los.
– A informação de saída relevante precisaria ser mais detalhada, pelo 
menos informando qual foi a função/procedimento testado.
• Fosse necessário verificar a execução da função/procedimento com 
diversos tipos de dados de entrada?
– Teríamos que criar mais blocos if-then-else no nosso main para 
verificar cada caso.
– A informação de saída relevante precisaria ser mais detalhada, 
informando qual foi a função/procedimento testado e qual o dado de 
entrada utilizado.
• Todos as funções/procedimentos estiverem funcionando a contento?
– Como posso retirar a verificação depois que verifiquei que tudo está 
funcionando a contento?
5Introdução ao JUnit
6
Exemplo 2
Escreva um método na classe Ponto para verificar se dois objetos do tipo 
Ponto são iguais
// teste
public class testaPonto4{
public static void main( String args[] ){
Ponto p1 = new Ponto(10,10);
Ponto p2 = new Ponto(10,11);
// saida esperada false
System.out.println( p1.igual(p2) ); 
}
}
7
Implementando e Testando
 A ideia de usar esses tipos testes a medida que 
implementamos a classe Ponto tem o intuito forçar o 
programador a criar classes e métodos que realmente 
necessita, e garantir que eles sejam testados! 
 O design da classe também costuma sair mais simples, pois 
uma classe com muitas dependências e acoplamento é difícil 
ser testada.
 Essa forma de desenvolver é conhecida como 
desenvolvimento dirigido a testes (Test-Driven
Development, TDD).
8
O Framework JUnit
 Test-Driven Development (TDD), é uma das práticas 
mais populares de testes entre desenvolvedores, a 
ideia é bem simples: escreva seus testes antes 
mesmo de escrever o código de produção. 
 O TDD encoraja designs de código simples e inspira 
confiança e é relacionado a conceitos da Extreme 
Programming.
9
O Framework JUnit
 Para implementar o TDD automaticamente na 
linguagem Java utilizamos o JUnit (junit.org), que é 
um framework muito simples para criação de testes 
de unidade e em especial sua execução. Ele possui 
alguns métodos que tornam seu código de teste bem 
legível e fácil de fazer as asserções.
 Uma asserção é uma afirmação, que pode ser 
verdadeira ou falsa, se os testes indicarem um 
comportamento correto (verdadeiro), os 
programadores podem evoluir o código, caso falhe 
(falso) indica um possível bug.
JUnit e Netbeans
• O framework JUnit é disponibilizado como um 
pacote (.JAR) para a linguagem Java (ex: 
junit-4.10.jar)
• Para utilizar o framework JUnit precisamos 
incluir o pacote .jar no projeto no netbeans.
• Para executar os testes implementados no 
Netbeans, utilizar as teclas de atalho (Alt + F6).
10Introdução ao JUnit
O Framework JUnit
• O framework JUnit é disponibilizado como um 
pacote (.JAR) para a linguagem Java (ex: junit-
4.10.jar)
• Facilita a verificação de nossas implementações no 
dia-a-dia do desenvolvimento.
11Introdução ao JUnit
12
O Framework JUnit
 Para adicionar o JUnit em um projeto no NetBeans, 
clique em biblioteca na janela de projetos e escolha 
adicionar biblioteca.
13
O Framework JUnit
 Após adicionar o JUnit, basta adicionar os testes dos 
métodos. 
14
O Framework JUnit
 Após adicionar o JUnit, basta adicionar os testes dos 
métodos. 
15
Como fazer uma asserção
 Para cada classe, teremos uma classe correspondente 
(por convenção, com o sufixo Test) que contará todos 
os testes relativos aos métodos dessa classe
 Em vez de um main, criamos um método com nome 
expressivo para descrever a situação que ele está 
testando.
 Mas... como o JUnit saberá que deve executar aquele 
método? Para isso anotamos este método com @Test, 
que fará com que o JUnit saiba no momento de 
execução, de que aquele método deva ser executado:
16
Como fazer uma Asserção
 Uma asserção é definida através dos métodos 
estáticos da classe Assert, importada do org.junit.
import org.junit.Assert;
import org.junit.Test;
 Por exemplo para verificar a saída : 
Ponto p1 = new Ponto();
Assert.assertEquals("(0,0)", p1.toString());
 O primeiro argumento é o que chamamos 
de expected, e ele representa o valor que esperamos 
para argumento seguinte (chamado de actual).
17
Resultado do Teste
 Se o valor for diferente do esperado, o teste não 
passará e uma barrinha vermelha será mostrada, 
juntamente com uma mensagem que diz:
expected <valor esperado> but was <o que realmente deu>
18
Testando a classe Ponto
 A classe completa para teste ficaria assim:
public class PontoTest {
@Test
public void testPonto() {
Ponto p1 = new Ponto();
Assert.assertEquals("(0,0)", p1.toString());
}
}
O Framework JUnit
• Implementamos normalmente nossa função/procedimento:
public class Exemplo {
public static boolean contem(String s,String t){
return s.contains(t);
}
}
• Implementamos um classe de teste para nossa função/procedimento:
public class ExemploTest {
@Test
public void testeContem() {
String s = "Linguagem de Programação I";
String t = "Linguagem";
Assert.assertTrue(Exemplo.contem(s, t));
}
}
19Introdução ao JUnit
Uso da classe Assert
O Framework JUnit
• Notem que não precisamos implementar main.
• Nosso teste foi implementado em uma classe 
separada. Não contaminamos a implementação da 
função/procedimento.
• Em cada classe de teste, podemos implementar 
diversos testes (convém agrupa-los de forma 
adequada).
• O relatório de execução dos testes inclui o nome 
dado ao teste, portanto este nome é de grande 
importância.
20Introdução ao JUnit
Obrigada
Profa. Ana Cristina dos Santos
anacristina.santos@mackenzie.br
21Introdução ao JUnit

Continue navegando