Aula 38
Curso React: Componentes Controlados
Summary
Resumo da Aula
Na aula anterior, foram escritos testes unitários para o componente input
, focando nas propriedades type
e value
. Nesta aula, o objetivo é concluir os testes do componente input
e prosseguir com os testes do checkbox, especialmente para verificar a correta posição do label
e a aplicação do estilo.
Objetivos da Aula
- Terminar os testes unitários do componente input.
- Testar o evento
onChange
do checkbox. - Verificar a correta inclusão do
label
e a aplicação de estilos.
Etapas do Exercício
-
Criar Novo Teste:
- Um novo teste será adicionado em
checkbox.test.js
.
- Um novo teste será adicionado em
-
Definição do Teste:
- A descrição do teste será: "Deve incluir um input cujo onChange é determinado pela prop onChange".
-
Implementação:
- Localizar o componente
input
dentro do teste. - Verificar se a propriedade
onChange
doinput
é igual àprops.onChange
.
- Localizar o componente
-
Uso do
beforeEach
:- No método
beforeEach
, o componente é montado e a proponChange
recebe uma função mock do Jest.
- No método
-
Expectativa:
- A expectativa é que o valor de
onChange
do input seja igual aprops.onChange
.
- A expectativa é que o valor de
Código
Os testes utilizam a biblioteca enzyme
para encontrar o componente e testar as propriedades associadas. O uso do mock
do Jest permite simular e verificar se o evento onChange
está configurado corretamente.
Conclusão
Após implementar e salvar o teste, a execução finaliza a tarefa de verificar a implementação adequada do evento onChange
dentro do componente checkbox.
Video Transcript
Na aula anterior, nós escrevemos testes unitários para o componente input,
para checar se as propriedades type, nem value, foram corretamente espaçadas a ele.
Nessa aula nós vamos terminar de testar esse componente input,
vamos testar a própria ontem de check.
Aí a gente vai partir para terminar os testes unitários do checkbox,
para verificar se o label realmente foi posicionado, colocado corretamente.
Vamos testar o teste do label e até testar se o estilo foi aplicado corretamente.
Vamos continuar, nós temos agora que testar essas propriedades.
Vamos começar com ontem de.
Vamos criar um novo teste aqui no lado esquerdo, temos checkbox.test.
.js, lá do direito tem a implementação checkbox.js.
Vamos criar um novo teste aqui, aqui lá embaixo, dentro do Describe do checkbox component.
Um adicional teste.
Vamos descrever esse teste, qual é a descrição.
Deve incluir um input cujo onChange
é determinado pela props onChange. Algum coisa sim.
Deixa eu dar a soft wrap aqui, para você ver melhor.
Então a gente vai testar que o onChange aqui do input é setado pela prop,
chamada onChange que vem que é dada pelo pai desse componente checkbox.
Vamos lá, definir aqui a função de flash ali, seta.
Vamos implementar esse teste.
Da mesma maneira, vamos primeiro achar esse input component, find input.
A gente achou esse cara, acho que component é o enzyme wrapper,
desse componente todo.
A gente procura para esse cara, acha ele.
E a gente vai olhar na prop, a prop vai ser onChange.
Então vamos lá, prop onChange.
Então esse cara, esperamos que o valor seja o props.onChange.
Nesse caso a gente já adicionou o valor falso para esse props,
voltando aqui lá em cima, no nosso beforeEach,
essa função, esse método, é chamado antes de cada teste.
Antes de cada teste a gente está montando o componente usando shell, shell amount.
A gente definiu a prop que é passada para o checkbox,
onChange como a função de mock, do jest.
Então é só verificar se realmente o onChange do input foi realmente a props.onChange,
que nesse caso é só esse mock, mas não importa para a gente,
a gente só vai falar props.onChange, que a gente tem acesso a essa variável
de fora do beforeEach, porque a gente definiu aqui no bloco do describe.
Então vamos lá, a gente vai expect esse cara todo,
ponto2b, esperamos que seja o que, o props.onChange.
Esse props se refere ao que?
Esse variável chamado props, que foi declarado no bloco do describe,
e é disponível em cada bloco de teste.
A equipe variável à definição foi aqui dentro do beforeEach,
que ocorre antes do teste ser rodado, e a gente definiu para shell.js.function.fm.
Então a gente espera que realmente seja aquele cara.
Então vamos salvar, vamos testar,
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: