1 JUnit. 2 Por que testar? Qualidade: Código testado é mais confiável –Como saber se o recurso funciona sem testar? Coragem para mudar: o programador.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

Reflexão Marco Antonio Arquiteto de Software Novembro/2007.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Em Busca de Software Correto
Iniciação ao Java – Márcio F. Campos
Polimorfismo e Acoplamento Dinâmico
Walfredo Cirne walfredo.dsc.ufpb.br
Programação Concorrente
Test Driven Development
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
PyUnit. O que é? Framework de teste baseado no JUnit Versão atual
Selenium CONFIGURAÇÃO DE TESTE.
Estrutura de Dados em Java
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
Test-Driven Development
Linguagem Técnica II Testes Automatizados Aula 04 Prof
JAVA: Conceitos Iniciais
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Concorrência em Java Threads em Java.
Introdução a linguagem Python
Tipos Agregados Homogêneos e Listas
Programação Orientada a Objetos com Java
Aula prática 13 Orientação a Objetos – C++ Parte 1
DBUnit Framework Componentes: Fábio Gomes Claver Pari Eni Conde
Plano de teste.
Programação I Aula 2 (Métodos)
Utilizando Testes Unitários Gleibson Rodrigo “dartanham” Fontes: antiga apresentação de testes da disciplina de ESS e na curso de testes do PDesigner.
JUnit “Keep the bar green to keep the code clean” JUnit Site.
Um Framework Para Testes
Testes de Unidade Usando JUnit
Introdução – Teste de Unidade usando JUnit
The art of Unit Testing. Unit testing O Um teste unitário é uma parte de código (geralmente um método/função), que invoca outra parte de codigo e verifica.
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Linguagem II Exceções.
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Programação Orientada a Objetos - Java
Tratamento de Exceções
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Introdução às Java Threads
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Prof.: Bruno Rafael de Oliveira Rodrigues. Construtor é bloco declarado que é chamado no momento em que o Objeto é criado (instanciado). Todas as classes.
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Classes Abstratas e Interface
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010.
Exemplo de desenvolvimento com testes (JUNIT - estudo de caso) Alfredo Goldman.
Herança Modelagem e Programação Orientada a Objetos
Daniel Cukier – IME - USP 1 Junit 4.0 Daniel Cukier – IME – USP MAC5700.
Factory.
Paulo Borba Centro de Informática Universidade Federal de Pernambuco Exceções.
Igor Steinmacher, MSc. Java!!!!
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Java Avançado Luiz Carlos d´Oleron SJCP JUnit.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
J U nit Um Framework Para Testes. Motivação  Todos os programadores sabem que devem testar seu código  Quanto mais curto o prazo menos testes são realizados.
Infra-Estrutura de Comunicação (IF678) Aula Prática 03 – CIn/UFPE Davi Duarte Cynthia Raphaella Ivan França Jéssica Barbalho Larissa Paz Paulo Fernando.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
1. 2 Programação Orientada a Objetos Prof. Maurício Rodrigues de Morais
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
TQS - Teste e Qualidade de Software (Software Testing and Quality) Introdução a testes unitários automatizados com JUnit.
Usando JUnit.
Transcrição da apresentação:

1 JUnit

2 Por que testar? Qualidade: Código testado é mais confiável –Como saber se o recurso funciona sem testar? Coragem para mudar: o programador tem medo de mudar a implementação? –Como saber se ainda funciona após refatoramento? Saber quando o projeto está pronto. Testes são requisitos “executáveis”. Escreva-os antes. Quando todos rodarem 100%, o projeto está concluído!

3 Problema com testes (e a solução) Todos sabem: devem ser escritos; Poucos o fazem, e por quê não ? –Estou com muita pressa Mas isto cria um círculo vicioso Como quebrar este ciclo? –Criando um ambiente simples de testes. Depois de fazer os primeiros testes, o hábito vem para ficar. menos testes menos produtividade menos estabilidade mais pressão

4 JUnit Junit: framework para desenvolvimento e execução de testes de unidade em programas Java Define um modelo de programação para a criação de testes de unidade em classes Java Disponibiliza o TestRunner : aplicação em modo texto ou gráfico para execução de testes Sugerido por Kent Beck para ser usado em XP

5 Recursos do JUnit Permite criação de testes unitários para métodos pertencentes a uma classe Permite a definição e execução de um conjunto de testes unitários – Suites de Teste Permite a execução de teste com relato de problemas ocorridos e onde especificamente ocorreram os erros

6 Usando o JUnit Passo 1: para cada classe a ser testada criar uma classe de Teste –Exemplo: classe Conta terá como classe de teste ContaTest A classe de Teste deve herdar da classe TestCase do framework JUnit

7 Exemplo - classe de teste import junit.framework.*; public class ContaTest extends TestCase { public ContaTest(String name) { super(name); }... } Importar classes do framework JUnit Herdar da classe TestCase Definir um construtor que recebe uma String

8 Usando o JUnit Passo 2: criar métodos de teste cujos nomes iniciam com a palavra “test” e possuem tipo de retorno void. Exemplo para a classe ContaTest: –public void testCredito() –public void testDebito() –public void testCreditoNegativo() –public void testDebitoNegativo() Passo 3: para cada método de teste definir seu comportamento: –invocação de métodos da classe do sistema a ser testada –avaliação do resultado dos métodos sendo testados usando os métodos assertEquals(), fail(), assertNull(), assertNotNull() do framework JUnit

9 Exemplo - classe de teste public class ContaTest extends TestCase {... public void testCreditar(){ Conta contaNum111_Saldo200 = new Conta(111, 200.0); Conta contaNum111_Saldo50 = new Conta(111, 50.0); contaNum111_Saldo50.creditar(150.0); this.assertEquals(contaNum111_Saldo200, contaNum111_Saldo50); } Declaração do método de teste Definição do método de teste

10 Alguns métodos do JUnit para teste assertEquals (objetoEsperado, objetoTeste); assertTrue (expressaoBooleana); assertNull(objeto); assertNotNull(objeto); fail (mensagem);

11 Exemplo - métodos do JUnit para teste public class ContaTest extends TestCase {... public void testDebitar(){ Conta contaNum111_Saldo50 = new Conta(111, 50.0); Conta contaNum111_Saldo1 = new Conta(111, 1.0); try { contaNum111_Saldo50.debitar(49.0); } catch(SaldoInsuficienteException saldo){ fail("Operacao de Debito falhou"); } this.assertEquals(contaNum111_Saldo1, contaNum111_Saldo50); }

12 Exemplo - métodos do JUnit para teste public class ContaTest extends TestCase {... public void testDebitoNegativo(){ Conta contaNum111_Saldo50 = new Conta(111, 50.0); try { contaNum111_Saldo50.debitar(51.0); fail("Deveria lançar SaldoInsuficienteException"); } catch(SaldoInsuficienteException saldo){ } Teste de Lançamento de Exceções

13 Métodos de configuração de testes Caso necessário, pode-se definir configurações iniciais para serem executadas antes de cada método de teste usando o método setUp() –configuração de objetos comuns aos casos de teste –configuração de recursos comuns aos casos de teste (exemplo: abertura de conexões de banco de dados, socket, etc) Para liberar recursos utilizados pelos métodos de teste pode-se usar o método tearDown() –Exemplos de recursos que podem ser liberados: streams, fechar conexões de banco de dados, apagar/mover arquivos de dados.

14 Exemplos - métodos do JUnit para configuração dos casos de teste public class ContaTest extends TestCase { Conta contaNum111_Saldo50; Conta contaNum111_Saldo1;... public void setUp(){ this.contaNum111_Saldo50 = new Conta(111, 50.0); this.contaNum111_Saldo1 = new Conta(111, 1.0); }... } Executa antes de cada método de teste

15 Suites de testes Quando falamos em teste automatizado, é comum querermos executar um conjunto de testes de uma única vez; Suites de testes representam um conjunto de testes que serão executados seqüencialmente; JUnit define a classe TestSuite que: –Permite incluir todos os métodos de teste de uma classe em um suite de teste; –Permite definir uma classe que inclui todos os suites de teste das classes do sistema.

16 Exemplos – suites de testes Definindo um suite de testes com apenas uma classe de teste... public class ContaTest extends TestCase {... public static Test suite(){ return new TestSuite(ContaTest.class); } public static void main(String[] args){ junit.textui.TestRunner.run(suite()); }... } Definição do suite de teste da classe Método main() da classe invoca suite de teste

17 Exemplos – suites de testes Agregando um conjunto de suites de teste public class AllTest {... public static void main(String[] args){ junit.textui.TestRunner.run(suite()); } public static Test suite(){ TestSuite suite= new TestSuite("All JUnit Tests"); suite.add(ContaTest.suite()); suite.add(PoupancaTest.suite()); }... } OU suite.add(new TestSuite(ContaTest.class));

18 Como começar? Siga as orientações do Tutorial JUnit: –TutorialJunitEclipse.ppt Links interessantes: –Ferramentas para Testes Unitários: – –