(→Como Obter) |
|||
(7 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 | + | 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. | ||
Line 9: | Line 11: | ||
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. | 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 == |
− | * | + | * [[Tópicos sobre escrita de testes com JUnit/Toy Example (JUnit 3.8.x)|Toy Example (JUnit 3.8.x)]] |
+ | * [[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 == |
− | * [[ | + | * [[Tópicos sobre escrita de testes com JUnit/Album (JUnit example)|Album]] - an album and its cards |
− | * [[ | + | * [[Tópicos sobre escrita de testes com JUnit/Porta AND binária|Porta AND binária]] - uma porta lógica |
− | + | == Como Obter == | |
− | |||
− | + | * http://www.junit.org/ | |
− | |||
− | * | ||
[[category:PO]] | [[category:PO]] | ||
[[category:Ensino]] | [[category:Ensino]] |
Contents |
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.