Testes de Unidade

testes.gif (9426 bytes)

Justificativa

Estágios de testes

Automatização de testes

Tipos de testes

Testes de Unidade

package tpdv;

import junit.framework.*;
import tpdv.*;

/**
 * Testes da classe Venda.
 *
 */
public class TestaVenda extends TestCase {
    protected IVenda venda1;
    protected IEspecProduto ep1;
    protected IEspecProduto ep2;
    protected IEspecProduto ep3;

    public TestaVenda(String name) {
        super(name);
    }
    public static void main(String[] args) {
        junit.textui.TestRunner.run(suite());
    }
    protected void setUp() {
        venda1 = new Venda();
        ep1 = new EspecificacaoDeProduto(100, 1.99, "prod1");
        ep2 = new EspecificacaoDeProduto(200, 2.99, "prod2");
        ep3 = new EspecificacaoDeProduto(300, 3.99, "prod3");
    }
    public static Test suite() {
        return new TestSuite(TestaVenda.class);
    }
    public void testConstrutor() {
        assert("1", !venda1.equals(null));
        assertEquals("2", 0.0, venda1.total(), 0.0);
        assert("3", !venda1.isTerminada());
    }
    public void testManipulacao() {
        venda1.criaLinhaDetalhe(ep1, 1);
        assertEquals("1", 1.99, venda1.total(), 0.001);
        venda1.criaLinhaDetalhe(ep2, 2);
        assertEquals("2", 1.99+(2*2.99), venda1.total(), 0.001);
        venda1.criaLinhaDetalhe(ep3, 2);
        assertEquals("3", 1.99+(2*2.99)+(2*3.99), venda1.total(), 0.001);
        try {
            venda1.façaPagamento((float)5.0);
            fail("facaPagamento(5.0) deveria gerar exception");
        } catch(PagamentoInsuficienteException e) {
        }
        try {
            venda1.façaPagamento((float)20.0);
        } catch(PagamentoInsuficienteException e) {
          fail("facaPagamento(20.0) nao deveria gerar exception");
        }
        assertEquals("4", 20-1.99-(2*2.99)-(2*3.99), venda1.getTroco(), 0.001);
        assert("3", !venda1.isTerminada());
        venda1.terminou();
        assert("3", venda1.isTerminada());
    }
}

Algumas palavras de Beck e Gamma

impl-3 programa anterior próxima