Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save rafaelpontezup/683291555d3c0fc088090e15adbb89db to your computer and use it in GitHub Desktop.
Save rafaelpontezup/683291555d3c0fc088090e15adbb89db to your computer and use it in GitHub Desktop.
Desafio Pix: abordagens nos testes de integração

Para escrever os testes de integração dos endpoints gRPC eu tive basicamente que levantar o contexto do Micronaut (com @MicronautTest) juntamente com um banco H2 em vez do PostgreSQL pois meu schema é MUITO simples e não valeria o custo de levantar um PostgreSQL via TestContainers. Por haver muita integração com os serviços satélites ITAU-ERP e BCB, eu mockei ambos.

No fim, eu segui duas abordagem na hora de escrever os cenários de testes:

  1. Para o endpoint RegistraChaveEndpoint, eu adentrei sua classe Service para extrair os cenários de testes, ou seja, todos os cenários foram concebidos a partir das classes de Endpoint + Service. No fim, escrevi uma única classe com todos os testes: RegistraChaveEndpointTest;

  2. Para o endpoint RemoveChaveEndpoint, eu escrevi somente testes básicos (happy-path e um de erro), enquanto os demais cenários (a real lógica de negócio) foram extraidos da classe Service (RemoveChaveService). No final das contas, acabei com 2 classes de testes: RemoveChaveEndpointTest e RemoveChaveServiceTest .

Nessa aplicação, Ambas as abordagens paracem OK para mim, mas queria ouvir a opinião de vocês!

PS: na minha vida pregressa de legados e monolitos, a 2a abordagem era minha segunda-feira, hehe

@asouza
Copy link

asouza commented Mar 17, 2021

Estes testes seguiram aquela linha que tínhamos falado? Isso não ficou claro para mim.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment