1
resposta

Montando cenários muito complexos

Olá, participo de um projeto que possui cenários extremamente complexos, por exemplo é necessário:

  • Cadastrar uma empresa (que pode ser de vários tipos)
  • Cadastrar os produtos (que possuem uma infinidade de configurações e mini cadastros)
  • Cadastrar os clientes (que possuem uma série de cadastros filhos)
  • Para enfim lançar a nota, que tem uma gama gigante de mini cadastros dentro.

Fora que para subir um banco limpo é necessário rodar uma série de scripts que demandam tempo. Tornando o tempo de teste ou mesmo para criação dos mesmo um tanto quanto oneroso. Criar um script para limpar também é complexo dada a gigantesca quantidade de relacionamento entre tabelas.

Estou pensando em criar um banco "semi limpo" com alguns registros pré cadastrados que seriam usados nos testes de nota e etc. Esse seria um caminho válido ou existem formas mais simples?

Até considerei tentar algo com Docker para facilitar, dai subiria o container já com o banco semi pronto dentro, rodava os testes e depois matava.

Que sugestões vcs possuem?

PS.: Hoje o projeto possui basicamente a seguinte arquitetura:

  • Server: Wildfly 10
  • Java 8
  • JSF + JPA
  • Banco: Postgres
1 resposta

Ola Fausto, acho que é isto mesmo.

Por exemplo, essa é a estratégia do framework Rails, que criar automaticamente 3 bancos de dados: desenvolvimento, teste e produção.

A ideia do banco de test é ser utilizado pelos testes unitários, ou pelos testes E2E (teu caso), e normalmente nele serão populados cenários (com poucos registros) para cada teste. Ao final de cada cenário o banco é Zerado.

Att.