BIGtheme.net http://bigtheme.net/ecommerce/opencart OpenCart Templates

Criando cenários de teste com Fixture Factory – por Maurício Aniche em Arquitetura

Escrever testes automatizados é com certeza um desafio, ainda mais para quem está começando. Mas, independente de conhecimento, montar cenários de teste é sempre uma tarefa que requer um certo esforço.

Essa é geralmente a parte mais chata de se escrever um teste. O programador precisa instanciar entidades (às vezes várias delas, pois uma pode ser composta por outro), passar valores específicos para elas, e etc. Em linguagens menos enxutas, como Java, isso costuma gastar algumas linhas de código de teste.

Para facilitar a vida, é comum que programadores apelem para classes especializadas, que ajudam a criar cenários de teste. Existem até padrões de projeto, como é o caso do Test Data Builder, que é um Builder (à la GoF) de cenários.

Um framework brasileiro que resolve bem esse problema é o Fixture-Factory. A ideia dele é justamente facilitar a criação de cenários. Como? Você ensina ele a criar objetos e, depois disso, apenas pede instâncias de cenários pra ele.

Veja, por exemplo, o código abaixo. Nele definimos duas fixtures (que é o nome que damos para “exemplos de cenários”) com o nome valido, e depois pedimos uma instância de Cliente:

Fixture.of(Cliente.class).addTemplate("valido", new Rule(){{
    add("id", random(Long.class, range(1L, 200L)));
    add("nome", random("Anderson Parra", "Arthur Hirata"));
    add("apelido", random("nerd", "geek"));
    add("email", "${apelido}@gmail.com");
    add("aniversario", instant("18 years ago"));
    add("endereco", fixture(Endereco.class, "valido"));
}});
Fixture.of(Endereco.class).addTemplate("valido", new Rule(){{
    add("id", random(Long.class, range(1L, 100L)));
    add("rua", random("Paulista Avenue", "Ibirapuera Avenue"));
    add("cidade", "São Paulo");
    add("estado", "${cidade}");
    add("pais", "Brasil");
    add("cep", random("06608000", "17720000"));
}});
Cliente cliente = Fixture.from(Cliente.class).gimme("valido");

Repare na quantidade de maneiras diferentes que você pode configurar sua fixture. O nome é randômico, o e-mail é baseado no outro atributo, o endereço vem de outra fixture, e etc. O framework é realmente bem completo, e é constantemente evoluído.

Há um tempo atrás, o Anderson Parra, um dos criadores do framework deu uma palestra aqui na Caelum sobre o assunto. Você pode vê-la aqui:

Acessar Vídeo

FONTE: http://blog.caelum.com.br/criando-cenarios-de-teste-com-fixture-factory/
AUTOR: 

 

Sobre Luiz Lohn

Luiz Lohn trabalha como QA Engineer em uma multinacional, além de realizar palestras e consultorias em empresas. Atua como um dos coordenadores do GUTS-SC (Grupo de usuário de teste de software), membro ativo na comunidade de qualidade e teste de software, ministra palestras e cursos. Especializando-se em segurança web e mobile.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Page Reader Press Enter to Read Page Content Out Loud Press Enter to Pause or Restart Reading Page Content Out Loud Press Enter to Stop Reading Page Content Out Loud Screen Reader Support