Difference between revisions of "Tópicos sobre escrita de testes com JUnit"

From Wiki**3

(New page: Quando se produz um programa, é importante garantir que funciona de acordo com as especificações. É, no entanto, difícil de dar esta garantia, especialmente em programas complexos. Co...)
 
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{NAVPO}}
 +
{{TOCright}}
 
Quando se produz um programa, é importante garantir que funciona de acordo com as especificações. É, no entanto, difícil de dar esta garantia, especialmente em programas complexos. Com o propósito de simplificar a tarefa, os testes podem ser realizados modularmente, i.e., testanto a aplicação por partes. Assim, se todos os módulos se comportam individualmente segundo as especificações, é mais simples de produzir testes que avaliem o comportamento da aplicação como um todo.
 
Quando se produz um programa, é importante garantir que funciona de acordo com as especificações. É, no entanto, difícil de dar esta garantia, especialmente em programas complexos. Com o propósito de simplificar a tarefa, os testes podem ser realizados modularmente, i.e., testanto a aplicação por partes. Assim, se todos os módulos se comportam individualmente segundo as especificações, é mais simples de produzir testes que avaliem o comportamento da aplicação como um todo.
  
JUnit é uma biblioteca que simplifica e sistematiza a produção de testes para cada um dos componentes (as unidades) da aplicação. Embora seja uma biblioteca Java, o princípio que materializa é geral e, de facto, existem versões para outras linguagens (cppunit, por exemplo, para C++; phpunit, para PHP, etc.).
+
JUnit é uma biblioteca que simplifica e sistematiza a produção de testes para cada um dos componentes (as unidades) da aplicação. Embora seja uma biblioteca Java, o princípio é geral e existem versões para outras linguagens (cppunit, por exemplo, para C++; phpunit, para PHP, etc.).
  
 
Na prática, os testes executam como asserções sobre expectativas, i.e., cada bateria de teste ou teste individual verifica se uma dada propriedade é verificada pelas instâncias das classes em teste (ou pelos resultados das operações sobre essas instâncias). As propriedades podem ser booleanas (verdadeiro/falso), igualdade, etc.
 
Na prática, os testes executam como asserções sobre expectativas, i.e., cada bateria de teste ou teste individual verifica se uma dada propriedade é verificada pelas instâncias das classes em teste (ou pelos resultados das operações sobre essas instâncias). As propriedades podem ser booleanas (verdadeiro/falso), igualdade, etc.
  
== Como Obter ==
+
A execução pode ser realizada pelos processos normais em Java, por recurso a um método main ou podem ser utilizadas classes específicas para execução de testes (runners), que na forma mais simples e directa executam todos os métodos cujo nome comece por “test”.
 +
 
 +
Numa classe de teste, podem ainda ser definidos os métodos setUp e tearDown que, respectivamente, preparam a execução de cada teste e executam procedimentos de limpeza após cada teste.
  
 
== Exemplos ==
 
== Exemplos ==
  
* [[Toy Example (JUnit 3.8.1)]]
+
* [[Tópicos sobre escrita de testes com JUnit/Toy Example (JUnit 3.8.x)|Toy Example (JUnit 3.8.x)]]
* [[Toy Example (JUnit 4.4)]]
+
* [[Tópicos sobre escrita de testes com JUnit/Testing the blobbiness of blobs|Testing the blobbiness of blobs]] - when does a blob blob a blob?
 +
* [[Tópicos sobre escrita de testes com JUnit/Random bombs|Random bombs]] - unreliable bombs that may or may not go off.
 +
 
 +
== Exercícios ==
  
* [[Testing the blobbiness of blobs]] - when does a blob blob a blob?
+
* [[Tópicos sobre escrita de testes com JUnit/Album (JUnit example)|Album]] - an album and its cards
* [[Random bombs]] - unreliable bombs that may or may not go off.
+
* [[Tópicos sobre escrita de testes com JUnit/Porta AND binária|Porta AND binária]] - uma porta lógica
  
== Exercícios ==
+
== Como Obter ==
  
* [[Unit Testing with JUnit/Album (JUnit example)|Album]] - an album and its cards
+
* http://www.junit.org/
  
 
[[category:PO]]
 
[[category:PO]]
 
[[category:Ensino]]
 
[[category:Ensino]]

Latest revision as of 14:01, 19 November 2015

Programação com Objectos
Introduction
Creation and Destruction
Inheritance & Composition
Abstraction & Polymorphism
Code Organization
Java Topics
Inner Classes
Enumerations
Data Structures
Exceptions
Input/Output
RTTI
Other Topics
JUnit Tests
UML Topics
Design Patterns
"Simple" Factory
Composite & Visitor
Command
Strategy & State
Template Method
Observer
Abstract Factory
Decorator & Adapter
Façade (aka Facade)

Quando se produz um programa, é importante garantir que funciona de acordo com as especificações. É, no entanto, difícil de dar esta garantia, especialmente em programas complexos. Com o propósito de simplificar a tarefa, os testes podem ser realizados modularmente, i.e., testanto a aplicação por partes. Assim, se todos os módulos se comportam individualmente segundo as especificações, é mais simples de produzir testes que avaliem o comportamento da aplicação como um todo.

JUnit é uma biblioteca que simplifica e sistematiza a produção de testes para cada um dos componentes (as unidades) da aplicação. Embora seja uma biblioteca Java, o princípio é geral e existem versões para outras linguagens (cppunit, por exemplo, para C++; phpunit, para PHP, etc.).

Na prática, os testes executam como asserções sobre expectativas, i.e., cada bateria de teste ou teste individual verifica se uma dada propriedade é verificada pelas instâncias das classes em teste (ou pelos resultados das operações sobre essas instâncias). As propriedades podem ser booleanas (verdadeiro/falso), igualdade, etc.

A execução pode ser realizada pelos processos normais em Java, por recurso a um método main ou podem ser utilizadas classes específicas para execução de testes (runners), que na forma mais simples e directa executam todos os métodos cujo nome comece por “test”.

Numa classe de teste, podem ainda ser definidos os métodos setUp e tearDown que, respectivamente, preparam a execução de cada teste e executam procedimentos de limpeza após cada teste.

Exemplos

Exercícios

Como Obter