Sie sind auf Seite 1von 4

Geversom - Software Developer: Testes Unitrios com Delphi

http://gedeveloper.blogspot.com.br/2009/06/testes-unitarios-...

Compartilhar

Denunciar abuso

Prximo blog

Criar um blog

Login

Geversom - Software Developer


Um espao para compartilhar conhecimentos.
TERA-FEIRA, 2 DE JUNHO DE 2009 POPULAR POSTS

Testes Unitrios com Delphi


Por: Paulo Roberto Quicoli Os testes unitrios visam realizar testes automatizados para suas classes. Esses testes por serem automatizados do segurana para que se faam alteraes sem aquele medo de ter quebrado algo no sistema. Quem aqui nunca fez uma alterao que arrumou uma coisa e sem querer estragou outra? Os testes unitrios atuam justamente nesse ponto, se voc faz algo que causa alguma conseqncia inesperada em alguma outra parte do sistema, que as vezes voc nem se lembra, os testes vo pegar a falha. Ferramentas de apoio Quando participei em 2004 da conferncia Extreme Programming Brasil eu era um dos poucos desenvolvedores Delphi l. Porm os conceitos e provas de conceito apresentados podem ser aplicados a qualquer equipe de desenvolvimento independente de linguagem utilizada. Sobre testes unitrios foi provado que: Do segurana, apoio, para que alteraes seja realizadas de forma mais dinmica Do coragem ao desenvolvedor para encarar as alteraes solicitadas Do base para entrega de um sistema sem bugs

Instalar ZeosLib no Delphi 2009 e Delphi 2010 Na minha opinio um dos melhores componentes para acesso a banco de dados o Zeoslib. Alm de fornecer acesso diversos SGDB, esse c... Gerenciamento de Projetos com Scrum Scrum sem dvida a metodologia gil que vem ganhando mais destaque ultimamente, especialmente depois de casos de sucesso com o Goog... Voc Conhece MariaDB SQL ? Voc j ouviu falar sobre esse banco de dados ?No? Ento saiba um pouco mais sobre o assunto: O MariaDB um novo banco de dados, de...

ARQUIVO DO BLOG

Arquivo do blog
LABELS BLOG ARCHIVE

2011 (5) Boas Prticas (5) 2010 (18) 2009 (28)

As ferramentas que do suporte a esse tipo de teste inicialmente surgiram para o Java e posteriormente foram traduzidas para outras linguagens e ambientes populares como Delphi e .NET. Se em Java temos o JUnit, para Delphi win32 temos o DUnit e para .NET temos o NUnit. DUnit Vou focar o artigo de hoje no DUnit com Delphi 7, visto que a maioria do desenvolvimento em Delphi ainda feito sobre win32 e com a verso 7 do Delphi. O framework pode ser baixado em http://dunit.sourceforge.net/ A instalao simples. Descompacte a o contedo do arquivo para alguma pasta e adicione no library path do Delphi o caminho \DUnit\Source Exemplo

Dezembro (3)

Delphi

(14)

Novembro (2) Outubro (1) Setembro (3) Agosto (9) Julho (2) Junho (6) Turbinando o Delphi com CnWizzard s Sopa de letrinhas

Desenvolvimento (5)

Dicas
(3)

(11)
Git

Informtica

(6)

mtodos geis

Os mais puristas em desenvolvimento TDD (Test Driven Development), desenvolvimento diridigo por testes, e XP (Extreme Programming) pregam que primeiramente devemos construir os testes para determinada classe e rod-lo. Dessa forma nos certificamos que os testes daro errado no inicio e s ento se inicia o desenvolvimento da classe a ser testada. Bem, para quem vem de uma cultura onde arrastar e soltar a melhor coisa do mundo, pra dar um n na cabea no ? Como vou testar algo que no est pronto.

(3)

Eco Developers 2009 Testes Unitrios com Delphi

SCM (3) scrum (3)

Mercado de tecnologia

1 of 4

03-06-2012 12:00

Geversom - Software Developer: Testes Unitrios com Delphi

http://gedeveloper.blogspot.com.br/2009/06/testes-unitarios-...
Software (4) tem muito trabalho e pouca m... Evento Microsoft Maio (2)

Bem, eu no sou purista e sou da opinio que devemos tirar o que h de melhor nisso e particularmente primeiro fao a classe e depois a testo. Inicie um novo projeto no delphi e adicione uma unit. Nessa unit insira a classe da Listagem 1.

Tecnologia
Testes (3)

(10)

xp (3)

Listagem 1. Classe a ser testada


PAGES

TNotas = class private FNota1: integer; FNota2: integer; FNota3: integer; FNota4: integer; procedure SetNota1(const Value: integer); procedure SetNota2(const Value: integer); procedure SetNota3(const Value: integer); procedure SetNota4(const Value: integer); public property Nota1: integer read FNota1 write SetNota1; property Nota2: integer read FNota2 write SetNota2; property Nota3: integer read FNota3 write SetNota3; property Nota4: integer read FNota4 write SetNota4; function Media: Real; end;

Incio Downloads

Implemente o mtodo Media conforme a Listagem 2.

Listagem 2. Mtodo Media function TNotas.Media: Real; begin Result := (Nota1 + Nota2 + Nota3 + Nota4)/4; end;

Testando a Classe Feche a aplicao e inicie um novo projeto, removendo deste o Form1, se criado. Acesse Project -> View Source e ajuste o cdigo do projeto de acordo com a Listagem 3.

Listagem 3. Preparando para utilizar DUnit uses Forms, TestFrameWork, GuiTestRunner; {$R *.res} begin Application.Initialize; GUITestRunner.RunRegisteredTests; end.

Salve o projeto e adicione uma nova Unit, nela vamos escrever o teste necessrio, conforme a Listagem 4.

2 of 4

03-06-2012 12:00

Geversom - Software Developer: Testes Unitrios com Delphi

http://gedeveloper.blogspot.com.br/2009/06/testes-unitarios-...

Listagem 4. Testes uses TestFramework, Model; type TNotasTestes = class(TTestCase) private FNotas: TNotas; protected procedure SetUp; override; procedure TearDown; override; published procedure TestMedia; end;

Observe que para testar uma classe, criamos outra de teste. Embora possa parecer trabalhoso e custoso, os benefcios oferecidos so compensadores. Toda classe de teste deve derivar de TTestCase, que apresenta dois mtodos que podem ser sobrecarregados e so muito teis. O SetUp e o TearDown. O Setup ser chamado antes de cada teste publicado ser executado. Assim, podemos preparar os testes com informaes necessrias antes de sua execuo. O TearDown, chamado depois que o teste realizado, podendo ser utilizado para liberar recursos alocados pelo teste. Pensando em nosso teste vemos que precisaremos de uma instncia de TNotas seja criada e aos o teste seja liberada. Utilizaremos ento o SetUp e TearDown para isso. Implemente o mtodo TestMedia conforme a Listagem 5.

Listagem 5. Codificando o teste procedure TNotasTestes.TestMedia; begin FNotas.Nota1 := 10; FNotas.Nota2 := 10; FNotas.Nota3 := 10; FNotas.Nota4 := 10; CheckEquals(10,FNotas.Media); end;

O framework DUnit oferece vrios mtodos que utilizamos para realizar testes, em nosso exemplo utilizamos o CheckEquals. CheckEquals vai verificar a igualdade dos valores passados, havendo diferena o teste identificado como falho. Antes de executarmos, preciso registrar o teste no framework, isso feito na seo initialization, veja a Listagem 6

Listagem 6. Registrando o teste initialization TestFramework.RegisterTest('Tests Suite', TNotasTestes.Suite);

Execute a aplicao, e d um ENTER, o teste ser executado

3 of 4

03-06-2012 12:00

Geversom - Software Developer: Testes Unitrios com Delphi


Cometendo um erro

http://gedeveloper.blogspot.com.br/2009/06/testes-unitarios-...

Digamos que precisamos alterar nossa classe de Notas, aumentar mais uma nota, de 4 para 5. E na correria apenas acrescentamos mais uma propriedade Nota5, esquecendo de ajustar a rotina do calculo. Ento ajustamos o teste para a nova situao, conforme a Listagem 7.

Listagem 7. Novo teste procedure TNotasTestes.TestMedia; begin FNotas.Nota1 := 10; FNotas.Nota2 := 10; FNotas.Nota3 := 10; FNotas.Nota4 := 10; FNotas.Nota5 := 5; CheckEquals(9,FNotas.Media); end;

Execute o teste, o mesmo ir falhar. Ao detectarmos a falha, podemos ento arrumar o clculo e executar novamente o teste, ento ele passar. Concluso Imagine em um sistema complexo como que os testes podem facilitar nossa vida, pegando as falhas que podemos causar. No fcil deixar o jeito de fazer as coisas como fazemos e partir para um novo modelo de desenvolvimento, mas com dedicao e boa vontade conseguimos resultados que nunca esperamos. At mais ! Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2739
Postado por Geversom Sousa s 09:18 Marcadores: Delphi

0 comentrios: Postar um comentrio


Digite seu comentrio...

Comentar como:

Selecionar perl... Visualizar


Incio Postagem mais antiga

Publicar
Postagem mais recente

Assinar: Postar comentrios (Atom)

Modelo Simple. Imagens de modelo por gaffera. Tecnologia do Blogger.

4 of 4

03-06-2012 12:00

Das könnte Ihnen auch gefallen