Dúvida: Boas práticas em testes automatizados
Preciso de ajuda
Hoje eu queria ouvir um pouco da opnião de programadores mais experientes na questão de testes automatizados. Comecei a escrever alguns testes na empresa em que trabalho. Praticamente não tem testes ainda, só os meus, mas eu quero fazer da forma correta.
Nossa stack
Recentemente eu e um colega refatoramos parte do backend do projeto. Estamos migrando para uma arquitetura de microsserviços usando o NX. As APIs, que no momento são meu foco em questão de testes, foram feitas usando Nest.js.
Como estou indo no momento
Eu estou usando a integração nativa do NestJS com Jest para testes e tenho gostado. A minha dúvida é se estou usando o nível de isolamento adequado. Basicamente os testes que escrevi, testam integrações externas e também CRUDS, sem nenhum mock. Escrevi de maneira que os testes que dependam do banco possam funcionar sempre, considerando que há um seed do projeto. Além disso eu procurei criar os testes na ordem CRIAR, BUSCAR, ATUALIZAR e DELETAR. Dessa forma, sempre que possível uma nova instância é criada antes de tudo e depois eu testo se o retorno está de acordo com o esperado. Não sei se fiz certo, mas busquei que os testes fossem tão desacoplados o quanto possível, mas sem muitos mocks. Pois eu não queria ter a falsa impressão do código estar Ok, mas na verdade eu ter escrito um teste falho.
Mais uma vez, obrigado comunidade do TabNews, vocês são incríveis! 😄