Arquitetura para testes
08/05/2017 14:14
0
Tenho num sistema uma funcionalidade do usuário "montar" um relatório, dizendo o que quer de gráficos e outras informações. Então tenho um domain Relatorio que representa um modelo de relatório montado por um usuário, e este domain tem uma coleção de ElementoRelatorio, que representam os elementos que devem compor este relatório.
Dependendo da quantidade de informações para processar, e do numero de elementos, a geração do relatório propriamente dito, para ser apresentado ao usuário, pode levar alguns segundos até um minuto, então o processo precisa ser em background. Além disso, a apresentação pode ser numa página html dentro do site, ou pdf ou docx. Como a geração é custosa, eu não quero gerar um relatório do zero toda vez que o usuário quiser num formato diferente então quando o usuário manda "gerar" um relatório, o que eu faço é mastigar todas as informações num json e persisto no banco, e na hora de renderizar em qualquer formato basta renderizar os dados já mastigados.
Estou tendo muita dificuldade em escrever testes para esta rotina de "mastigação de dados". Consigo testar a nível de unidade as rotinas individuais de processamento para cada tipo de "elemento", mas não o todo, principalmente por ser uma rotina em background, sendo mais especifico, garantir que:
[list=1][/list]O que me sugerem? Algum padrão, alguma forma de arquitetar isso para facilitar os testes, algum caso que posso tomar de exemplo?
Se necessario posso detalhar mais, talvez não tenha dado informações suficientes.
O projeto é em Grails 3
Tags: grails3 testes


Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto