JavaScript Assertivo Testes e qualidade de código em todas as camadas da aplicação
Gabriel RamosConteúdo
Manter a devida cultura de testes durante o desenvolvimento traz diversos benefícios para o seu código, seu produto, seu time e até mesmo para a empresa. O tempo investido ao escrever testes é recompensado com o aumento da confiança no funcionamento do seu código, redução de bugs e facilidade na manutenção, além da garantia de qualidade e assertividade. O cenário de testes tem se expandido e crescido nos últimos anos, principalmente quando falamos de JavaScript e seu ecossistema vivo, com mudanças e novidades constantes, seja trabalhando com front-end, back-end ou em ambas as vertentes.
Neste livro, Gabriel Ramos aborda as peculiaridades dos vários tipos de testes que compõem a pirâmide de testes, de modo que atinja as diferentes camadas das aplicações. Após passar pelos fundamentos necessários, você começará seu aprendizado prático com testes em uma CLI, com operações CRUD, avançando logo para uma aplicação back-end que expõe uma API com Node e Express, onde teremos testes de unidade e integração e alguns testes de carga. Partindo para o front-end, você testará códigos de navegadores e verá especificidades da popular biblioteca React, com testes unitários, de integração e de regressão visual nos componentes de interface. Por fim, aplicará testes de ponta a ponta (ou end-to-end/e2e), onde o autor simula um fluxo completo, garantindo que tudo ocorre conforme o esperado. Tudo isso usando diversas tecnologias como o framework Jest, Cypress, Loki e muito mais!
Sumário
Parte 1: Fundamentos de testes
- 1 Uma conversa (nem tão) séria sobre testes
- 1.1 Alguns dos (vários) motivos pelos quais você deveria fazer testes
- 1.2 Como você testa suas aplicações?
- 1.3 A famosa pirâmide de testes
- 1.4 Esses detalhes são apenas conceitos
- 2 Análise estática de código com ESLint
- 2.1 Um passo para trás, dois passos para frente
- 2.2 Instalação
- 2.3 Configuração
- 2.4 Arquivo de configuração, regras e plugins
- 2.5 Alguns passos extras com análise estática
- 3 Simulando um framework de testes
- 3.1 O que é, do que se alimentam e como se executam testes?
- 3.2 Criando novas abstrações e iniciando nosso miniframework
- 3.3 Conhecendo asserções ao criar novos utilitários
- 3.4 Trabalhando com assert nativo no NodeJS
- 4 Diga olá ao Jest!
- 4.1 Instalação e primeiros passos
- 4.2 Configurações iniciais e conhecendo a CLI
- 4.3 Primeiro teste
- 4.4 Executando tarefas repetitivas com Hooks
- 4.5 Como ler o relatório de testes
- 4.6 Cobertura e a corrida pelo 100%
- 4.7 Indo além nas configurações
Parte 2: Aplicando testes unitários em uma CLI
- 5 Testando código síncrono
- 5.1 Como criar uma CLI em NodeJS
- 5.2 Estrutura do projeto, instalação e configuração
- 5.3 Mão na massa: testando os utilitários de logging
- 5.4 Testando o utilitário de argumentos
- 6 Testando código assíncrono
- 6.1 Hora das funções assíncronas: testando a camada que salva os dados
- 6.2 Um pouco mais de assincronia: garantindo cenários de falha
- 6.3 Lembrete importante quando trabalhamos com testes assíncronos
- 7 Ajustando configurações e testando middlewares
- 7.1 Facilitando acesso aos arquivos do projeto
- 7.2 Entendendo cadeia de responsabilidades ao testar middlewares
Parte 3: Testando aplicações back-end
- 8 Testes unitários com Node e Express
- 8.1 Estrutura do projeto, instalação e configuração
- 8.2 Ajustando a configuração inicial
- 8.3 Testando controller de Autenticação
- 8.4 Aplicando factories para a criação dos objetos dos testes
- 8.5 Testando middlewares
- 8.6 Testando services
- 8.7 Próxima parada: integração
- 9 Testes de integração na API de usuários
- 9.1 Configurações iniciais e factory para cliente HTTP
- 9.2 Testando as rotas da API
- 9.3 Testando endpoint de login
- 9.4 Próxima parada: testes de carga
- 10 Testes de carga
- 10.1 Configurando o Artillery
- 10.2 Executando os testes de carga
- 10.3 Cansei de testar APIs, não vamos ter nada visual?
Parte 4: Testando aplicações front-end
- 11 Testes unitários nos componentes da aplicação
- 11.1 Estrutura do projeto, instalação e configuração
- 11.2 Testando componentes puramente visuais
- 11.3 Testando utilitários de clientes
- 11.4 Testando estado global
- 11.5 Próxima parada: testes de integração no front-end
- 12 Testes de integração nas telas da aplicação
- 12.1 Testando a página de Dashboard
- 12.2 Próxima parada: testes de regressão visual
- 13 Testes de regressão visual
- 13.1 O que são testes de regressão
- 13.2 Conhecendo o Loki e executando os testes
- 13.3 Grand Finale: hora de testar o funcionamento completo de nosso software
Parte 5: Testando de ponta a ponta
- 14 Testes de ponta a ponta (end-to-end)
- 14.1 Como funciona um teste E2E
- 14.2 Conhecendo o Cypress
- 14.3 Criando um teste inicial
- 14.4 Criando alguns comandos com a API do Cypress
- 14.5 Testando o cenário de login
- 14.6 Testando as funcionalidades de dashboard
- 14.7 Terminamos nossa jornada, mas o assunto não para por aqui
Part 6: Extras e conteúdos relevantes após a nossa jornada
- 15 Próximos passos nessa jornada
- 15.1 Ferramentas adicionais e referências
- 15.2 Você já ouviu falar em TDD, BDD e DDD?
- 15.3 Comentários sobre decisões e tópicos que não foram o nosso foco
- 15.4 Obrigado por tudo e até breve
- 16 Glossário
Autor
Gabriel Ramos
Gabriel Ramos é pintor de pixel (ou desenvolvedor, como algumas pessoas preferem chamar) e instrutor em projetos relacionados ao ensino da tecnologia. Técnico formado pelo IFSP e tecnólogo em Análise e Desenvolvimento de Sistemas formado pela FIAP, já passou por empresas de diversos tamanhos e segmentos: de e-commerces e companhias mais consolidadas à startups unicórnios com produtos emergentes. Na grande maioria de suas experiências teve contato com os mais variados assuntos que envolvem o ecossistema JavaScript, desde aplicações front-end à ferramentas e back-end. Acesse os projetos do livro através do site https://javascriptassertivo.com.br/ e também os posts e conteúdos extras do autor em seu blog https://gabrieluizramos.com.br
Dados do produto
- Número de páginas:
- 366
- ISBN:
- 978-65-86110-84-5
- Data publicação:
- 10/2021