DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Testando formulário com DUnit

Veja neste artigo dicas de como testar formulário e componentes usando o DUnit.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Olá pessoal, neste artigo abordarei sobre a utilização do Dunit um framework em vem junto com o Delphi que ajuda a fazer teste unitário.

Bem o conceito de Teste unitário surgia da ideia do ken beck em suas praticas de XP,no Delphi já existia o projeto Dunit desde 2002 e foi incorporado no Delphi na versão 2010.

Mas vamos ao que interessa imagina a seguinte telas


Figura 1. Layout Inicial


Figura 2. Incluir dois Cachorros.


Figura 3. Incluir três Aves.


Figura 4. Selecionando

Temos um RadioGroup com dois valores, sendo quando selecionar algum destes valores sera modificado o valor do combobox e quando clicar no botão selecionar ele mostrar no label o valor escolhido do combobox.

Listagem 1: Criar o nosso Teste

 TestTForm1 = class(TGUITestCase)
  protected
    procedure SetUp; override;
    procedure TearDown; override;
  published
    procedure Hookup;
  end;

Como sabemos o Setup e o tearDown é executado a cada teste para que o nosso teste não seja tão custoso criar e destruir o formulário.

Listagem 2: Criar um Suite

  TForm1Setup = class(TTestSetup)
  private
    FForm1 : TForm1;
  protected
    procedure SetUp; override;
    procedure TearDown; override;
  end;

Listagem 3: Códigos de nossas classes

  TestTForm1 = class(TGUITestCase)
  protected
    procedure TearDown; override;
  published
    procedure Hookup;
    procedure TestQtdValoresComboCachorro;
    procedure TestQtdValoresComboAve;
    procedure TestClickBotaoSelecionarCombo;
  end;

Retornara a seguinte tela:


Figura 5. DUnit - Test Hierarchy

Listagem 4: Implementando o teste

procedure TestTForm1.TestClickBotaoSelecionarCombo;
var
  rGroup: TRadioGroup;
  cBox : TComboBox;
  lbl: TLabel;
begin
  rGroup := FindControl('RadioGroup1') as TRadioGroup;
  rGroup.itemindex :=0;
  cBox := FindControl('ComboBox1') as TComboBox;
  cBox.ItemIndex:=2;
  CheckEquals(cBox.Items.Count, 2);
  Click('Button1');
  lbl := FindControl('Label2') as TLabel;
  CheckEquals(cBox.Text, lbl.Caption);
end;


procedure TestTForm1.TestQtdValoresComboCachorro;
var
  rGroup: TRadioGroup;
  cBox : TComboBox;
begin
  rGroup := FindControl('RadioGroup1') as TRadioGroup;
  rGroup.itemindex :=0;
  cBox := FindControl('ComboBox1') as TComboBox;
  CheckEquals(cBox.Items.Count, 2);
end;

procedure TestTForm1.TestQtdValoresComboAve;
var
  rGroup: TRadioGroup;
  cBox : TComboBox;
begin
  rGroup := FindControl('RadioGroup1') as TRadioGroup;
  rGroup.itemindex :=1;
  cBox := FindControl('ComboBox1') as TComboBox;
  CheckEquals(cBox.Items.Count, 3);
end;

Após executar o nosso teste podemos ver que todos passaram com sucesso


Figura 6. Testes realizados com sucesso.

Agora vamos imaginar que tivemos que acrescentar mais um valor no nosso combo quando for escolhido o animal cachorro


Figura 7. Adicionando mais um Cachorro.

Após a nossa alteração vamos rodar o nosso teste


Figura 8. Realizando novamente o teste.

Podemos ver que ele esperava 2 item e agora tem 3 item, assim corrigimos o nosso teste para que ele possa passar novamente.

Listagem 5: Implementando mais um item

procedure TestTForm1.TestQtdValoresComboCachorro;
...
  CheckEquals(cBox.Items.Count, 3);
...

Bem isso ajuda no nosso dia a dia pra testar certas funcionalidades de nossas interfaces.


Marcelo Fernandes
Sou analista,programador e arquiteto na Questor Sistema. Trabalha com Delphi, desde da versao 5, e Firebird,Mysql desenvolvendo aplicações cliente-servidor. Formado em Tecnologia de Processamento de dados pela Cesumar, na cidade de Maringá-Pr.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03