Este documento apresenta o framework de testes Epic para testes unitários em PostgreSQL. Discute a importância de testes unitários para garantir a qualidade do código e evitar regressões. Apresenta um exemplo passo a passo de como escrever um teste unitário em PostgreSQL usando o framework Epic, desde a especificação do teste até a execução e validação dos resultados.
34. Instalando o Epic svn co http://svn.epictest.org/trunk/epic epicpsql meu_banco < epic/epic.sqlOBS: meu_banco deve ter a PL/PgSQL instalada.
35. Escrevendo testes com o Epic CREATE OR REPLACE FUNCTION test.test_tipo_sanguineo() RETURNS void AS $$ -- module: validacoes BEGIN PERFORM test.assert(NOT valida_tipo_sanguineo('w'), 'w nao eh um tipo valido'); PERFORM test.assert(valida_tipo_sanguineo('o'), 'o eh valido'); PERFORM test.pass(); END; $$ LANGUAGE plpgsql;
36. Executando testes com o Epic epic=# SELECT * from test.run_all(); name | module | result | errcode | errmsg ----------------------------+---------------+--------+----------+-------- test_tipo_sanguineo | validacoes | [OK] | | (1 row)
37.
38. As funções de teste devem estar no schema test e devem começar o seu nome com test_
39. Para executar apenas um módulo podemos usar: epic=# SELECT * from test.run_module('validacoes');