Boas-vindas! Meu nome é Neilton Seguins, estou muito contente de ter você comigo neste curso de React JS: testes automatizados no front-end. Eu te acompanharei nessa jornada!
Autodescrição: Sou um homem negro de pele escura, com cabelos curtos e também escuros. Tenho olhos castanhos escuros. Estou utilizando óculos com armação retangular e uma camiseta na cor azul escura. Ao fundo, há uma parede lisa com iluminação degradê, do azul ao rosa.
Se você não tem nenhum conhecimento em React e nunca desenvolveu nenhuma aplicação React, recomendamos que você faça os cursos da Formação de React com JavaScript. Ou, se você estiver um pouco mais avançado, React com TypeScript.
Neste curso, vamos escrever testes para a aplicação do Bytebank, uma startup de um banco digital. Essa empresa não tem ainda uma cultura de escrita de testes, essa será a nossa tarefa!
Nessa jornada, vamos entender as vantagens de escrever testes para o nosso front-end. Descobriremos como utilizar bibliotecas comuns, como JS e o Test Library, para testar componentes React. Também simularemos a interação de pessoas usuárias com a nossa página, como ações de transferência e depósito, e estudaremos como buscar elementos na tela, utilizando o Test Library!
Estou muito empolgado para começar essa jornada de aprendizado, e você? Espero que você esteja também. Vamos começar o curso?
Vamos imaginar que somos pessoas desenvolvedoras front-end na start-up de banco digital Bytebank. Essa empresa está na fase de construção do MVP (Mínimo Produto Viável) para apresentá-lo a futuros investidores. Uma parte da aplicação já está pronta, vamos conferir, a seguir.
Ao acessá-la, temos a tela de quando o usuário está logado. Há uma barra preta na parte superior. À esquerda, temos o logotipo do Bytebank. À direita, o nome da pessoa logado. No caso, Joana Fonseca Gomes.
O corpo da página tem o fundo verde bem claro. Na lateral esquerda, há um menu com links para outras áreas da aplicação:
Na lateral direita, há uma seção de extrato. No momento, não há transações listadas.
A parte central da página é dividida em dois componentes. Na parte superior, há um retângulo verde em que podemos checar o saldo. Atualmente, temos R$1000,00. Na parte inferior, temos um retângulo cinza, em que é possível realizar uma transação. Vamos preencher os campos dessa área para realizar nossa primeira transação:
- Selecione um tipo de transação: Depósito
- Digite um valor: 500
Ao pressionar o botão "Realizar transação", o depósito será listado na seção "Extrato", na lateral direita. É possível verificar o mês, a data completa, o tipo de transação e o valor.
Notaremos que o saldo mudou de R$1000,00 para R$500,00. Como fizemos um depósito, era esperado que o saldo mudasse de R$1000,00 para 1500,00. Ou seja, encontramos um erro na aplicação. Em breve, nos aprofundaremos nessa questão.
Vamos fazer uma nova transação. Dessa vez, uma transferência:
- Selecione um tipo de transação: Transferência
- Digite um valor: 500
Ao pressionar "Realizar transação", a transferência será listada abaixo do depósito, na área "Extrato", à direita. No componente de saldo, percebemos que o saldo aumentou de R$500,00 para R$1000,00.
Em outras palavras, parece que os sinais estão invertidos. No depósito, deveríamos somar o valor ao saldo e, na transferência, deveríamos subtrair, mas o contrário está acontecendo.
Se a Bytebank desenvolvesse uma cultura de testes, esse erro não aconteceria. Os testes asseguram a qualidade e confiabilidade da aplicação, pois garantem o que código faz ou não faz. É muito importante que os testes estejam presentes desde o começo do desenvolvimento.
Por exemplo, se essa aplicação já fosse de grande escala e tivesse milhares de clientes, um erro desses causaria problemas para muitas pessoas. É até difícil de imaginar a gravidade! O time de pessoas desenvolvedoras teria que investir bastante tempo procurando o bug no código. Já se tivéssemos testes, isso não seria necessário. Ou seja, os testes também trazem uma economia de tempo para quem desenvolve.
Agora que entendemos a escrita de testes, você pode estar se perguntando o podemos testar no front-end. Vamos estudar esse assunto no próximo vídeo.
Agora que já conhecemos algumas das vantagens de testar aplicações, você deve estar se perguntando o que podemos testar em uma aplicação front-end, como a do Bytebank. Vamos conferir, a seguir.
A pessoa responsável pela qualidade do código é geralmente chamada de Quality Assurance (ou QA). No Bytebank, essa pessoa ainda não foi contratada, então a própria pessoa desenvolvedora ficará responsável por realizar os testes.
Como a empresa não tem uma cultura de testes automatizados, ela faria os testes manualmente. Ou seja, teria que testar todo o fluxo como se fosse uma pessoa usuária. Checaria o logotipo e o nome na barra superior, o menu à esquerda com os links para outras páginas, a seção de extrato à direita. Assim com fizemos no vídeo anterior, a pessoa poderia realizar uma transação para conferir se ela aparece no extrato e se o saldo é alterado como esperado.
Contudo, vamos imaginar se a aplicação tivesse crescido bastante, ganhado inúmeras funcionalidades e houvesse várias informações em processamento, além de muitas partes se comunicando entre si. Testar todo o fluxo manualmente seria bastante trabalhoso e até improdutivo. Afinal, temos que garantir que, ao inserir uma nova funcionalidade, as demais partes da aplicação continuam funcionando normalmente.
Por isso, pessoas desenvolvedoras empregam testes automatizados! Podemos investir um pouco de tempo do nosso dia para escrever testes automatizados, garantindo a qualidade e confiabilidade do código, além de uma economia de tempo futuramente.
Agora que entendemos que escrever testes automatizados é muito melhor que testar a aplicação manualmente, vamos conhecer sobre os tipos de testes aplicáveis para programas e quais são interessantes para o front-end.
O curso React JS: crie testes com Jest e Testing Library e garanta o funcionamento do Front-end possui 100 minutos de vídeos, em um total de 47 atividades. Gostou? Conheça nossos outros cursos de React em Front-end, ou leia nossos artigos de Front-end.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.