Este curso é uma introdução e análise detalhada dos testes para a Web.
Neste curso, você vai aprender:
- Conceitos básicos de testes
- Comparação entre testes automatizados e manuais
- Onde e como executar testes
- Práticas recomendadas
- A filosofia do teste, incluindo o que testar, quem é responsável e como considerar testar um meio para um fim, não como um objetivo em si.
O curso também inclui exemplos de código concisos e práticos para você aprender.
O escopo do curso inclui JavaScript e o modelo de documento no front-end, bem como testes de biblioteca no back-end, executados em um ambiente como Node.js. Não é necessário ter experiência com testes, mas você vai precisar de conhecimento básico em JavaScript e experiência com Node.js ou similares. É adequado para desenvolvedores iniciantes e experientes.
Como a maioria dos frameworks e ferramentas de teste compartilham uma linguagem comum, o Learn Testing usa uma abordagem geral. Quando for importante especificar algo, usaremos o Vitest, um framework de teste que está se popularizando, e demonstraremos como testar componentes para a Web criados com React ou Lit (links em inglês). Para saber mais sobre essa escolha, consulte o apêndice.
É possível percorrer este curso do início ao fim, mas também é possível usá-lo como referência para tópicos específicos. Quando relevante, o curso inclui links para recursos.
Você aprenderá a fazer o seguinte:
Começar a fazer testes
O que são testes
Esta é uma introdução de alto nível aos testes, incluindo exemplos práticos de testes em JavaScript. Ele também inclui uma introdução à escala de cada teste.
Onde os testes são executados
Os testes podem ajudar você a ser produtivo e escrever software de maneira eficiente e, embora seja possível executá-los manualmente usando uma linha de comando, também é possível executá-los como parte de um processo ou sistema de criação automatizado.
O ambiente de teste
As ferramentas de ambiente de execução, como o Node, são destinadas a códigos de uso geral, e o código de teste para o navegador pode ser executado em um ambiente emulado ou usando um framework projetado para testes de navegador.
Tipos de testes automatizados
Saiba mais sobre categorizações comuns de tipos de teste, que correspondem principalmente à escala deles. É importante ressaltar que os tipos de teste não têm uma definição estrita e vão mudar de acordo com suas necessidades.
O que testar e sua abordagem
Identificar as partes mais importantes da sua base de código para aplicar testes rigorosos pode ser uma decisão difícil. Este módulo apresenta a ideia de testar como um meio para um fim e como avaliar seu código para testes.
Testes de componentes na prática
Neste módulo prático, você vai aprender a testar um componente do React
não tão ideal. Ele usa o Vitest com três exemplos distintos: interceptar
o tráfego de rede feito com fetch()
, simular uma dependência externa e usar
o Context
do React para fornecer um trecho de código personalizado apenas para o teste.
Análise estática
O uso de ferramentas como TypeScript e ESLint, embora abordagens não bem estabelecidas para testes, pode oferecer um tipo de verificação automatizada. Este módulo discute essas ferramentas alternativas.
Declarações e outros primitivos
Ferramentas do comércio
Saiba mais sobre os primitivos comuns à maioria das bibliotecas ou frameworks de teste,
incluindo test()
e assert
, que serão os bases de todos os testes criados
em JavaScript.
Em breve
- Como evitar armadilhas comuns de teste
- Duplas de teste
- Testar bibliotecas e utilitários
- Escolher uma estrutura de teste
O restante desta seção vai conter mais páginas sobre frameworks e bibliotecas de teste, como eles devem ser usados e como decidir qual deles e quais outras ferramentas usar.
Em breve: testes orientados por problemas
Você aprenderá padrões para abordar vários desafios comuns de teste da Web.
Em breve: testes automatizados na prática
Esta é uma seção prática que mostra como testar um site de e-commerce criado com o Next.js, incluindo um código que você pode conferir e aprender por conta própria. Você vai aprender a testar os componentes e trabalhar com os serviços externos, incluindo pagamentos, para testes e como criar testes completos para um site que tem uma página de login opcional.
Em breve: a filosofia dos testes
Os testes podem ser um desafio de engenharia, mas saber o que testar, quem é responsável e as práticas recomendadas também pode ser um desafio para uma equipe de desenvolvimento.
Em breve: como criar códigos testáveis
Este curso fornece orientações sobre como testar o código na forma em que ele existe, mas sua equipe pode adotar vários padrões para facilitar o teste do código. Nesta seção, vamos abordar algumas abordagens.