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:
-
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
; -
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
eRemoveChaveServiceTest
.
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
Estes testes seguiram aquela linha que tínhamos falado? Isso não ficou claro para mim.