Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Globo Aplausos Wiki Globo Aplausos Wiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Infrastructure Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Globo Aplausos
  • Globo Aplausos WikiGlobo Aplausos Wiki
  • Wiki
  • Qualidade

Last edited by Henrique Cardoso Zanette Nov 08, 2023
Page history
This is an old version of this page. You can view the most recent version or browse the history.

Qualidade

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

  • Husky
  • Testes Unitários
    • Como escrever testes unitários

Husky

image

O Husky é uma ferramenta utilizada para o gerenciamento de githooks, que são scripts personalizados que podem ser executados em diferentes etapas do ciclo de integração contínua do Git, como por exemplo antes de um commit ou antes de um push.

No projeto Globo Aplausos, utilizamos o Husky para validar o nome de branches, para que contenham o prefixo de feature ou fix, seguidas da estrutura de US-Número da User Story ou NOUS, em caso de branchs que desenvolvam alguma tarefa que não possui história. No backend, também validamos os testes unitários, que precisam passar para que seja possível dar o push na branch.

A validação de commits é realizada em ambos repositórios, na qual são rodados os scripts de lint e prettier, para que a formatação do código seja mantida durante o desenvolvimento.

Testes Unitários

opengraph

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:

  1. Instalar as extensões Jest e Jest Runner, para que seja possível executar rodar um teste individualmente.

  2. Ativar o debug auto attach toggle do VSCode para smart ou always.

  3. Executar o teste desejado, colocando breakpoints onde for necessário investigar.

Clone repository
  • Analytics
  • Arquitetura
  • Backend
  • Banco de Dados
  • Codigo
  • Configuracao
  • Design_Mockups
  • Escopo
  • Frontend
  • Processo
  • Qualidade
  • gerencia
  • Home