Home | Escopo | Processo | Design/Mockups | Configuração | Arquitetura | Gerência | Código | BD | Qualidade | Frontend | Backend |
---|
Descrição
Esta página visa apresentar os padrões de qualidade utilizados no projeto Globo Aplausos.
Sumário
Testes Unitários
A utilização de testes é algo essencial durante o desenvolvimento de software. No projeto Globo Aplausos, utilizamos testes unitários no Backend da aplicação para garantir a integridade de suas classes e módulos, além de garantir que as funcionalidades da API comportam-se de maneira esperada.
Para escrever os testes unitários em NestJS, utilizamos a ferramenta Jest, que nos possibilita criar os módulos, serviços e controlares da aplicação para que possamos testá-los diretamente, simulando chamadas a API.
Como escrever testes unitários?
Para escrever um teste unitário, primeiro deve-se identificar a classe que está sendo testada. O arquivo de testes deve seguir a nomenclatura da classe original, como por exemplo, para classe auth.service.ts
o nome do arquivo de testes será auth.service.spec.ts
, para que ele possa ser identificado pelo Jest. O arquivo também deve sempre estar próximo a classe que ele visa testar, mantendo-se sempre no mesmo nível de repositório.
Com o arquivo de testes criados, podemos começar a descrever nossos casos de teste, utilizando a seguinte estrutura:
describe('Nome da classe testada', () => {
- Declarar a classe a ser testada e suas dependências.
beforeEach(() => {
- Inicializa as classes.
});
describe('Caso de teste', () => {
it('Deve fazer tal coisa', async () => {
Testa alguma coisa...
});
});
});
Analisando a estrutura acima, o método beforeEach
será rodado antes de cada um dos casos de teste, como por exemplo inicializar as classes e dependências a serem testadas ou providenciar algum Mock.
Para declarar os casos de teste, seguimos a função de describe
, para criar os grupos que irão armazenar estes casos de testes, e a função it
para declarar um caso de teste.
Debugando um teste
Para debugar um teste, é necessário:
-
Instalar as extensões Jest e Jest Runner, para que seja possível executar rodar um teste individualmente.
-
Ativar o
debug auto attach toggle
do VSCode parasmart
oualways
. -
Executar o teste desejado, colocando breakpoints onde for necessário investigar.