Aula 79
Prop label e options do CheckboxList no Formulário e a Diferença entre toBe() e toEqual()
Summary
# Resumo do Transcript
Neste trecho, o autor discute a criação de um teste para um checkbox list com um label "frutas que gosta".
## Criação do Teste
1. **Teste para Checkbox List:**
- O teste deve garantir que o checkbox list inclua o label "frutas que gosta".
- Utiliza `findware` para localizar o checkbox e armazená-lo em uma variável.
- Verifica se a propriedade `label` do checkbox é igual a "frutas que gosta".
2. **Verificação das Options:**
- As opções do checkbox list são definidas em um arquivo de constantes (`constants/index.js`) como uma lista de objetos, cada um contendo um `id`, `label` e `value`.
- O autor enfatiza a importância de testar com os dados corretos, evitando a cópia de valores potencialmente imprecisos.
3. **Comparação de Objetos:**
- O teste verifica se as opções do checkbox list são idênticas às definidas na lista de frutas.
- Há uma explicação sobre a diferença entre `toBe` e `toEqual`:
- `toBe` verifica referência de memória (mesmo objeto).
- `toEqual` compara os valores dos objetos, permitindo que eles sejam diferentes na memória, mas iguais em conteúdo.
4. **Erro e Correção:**
- O autor demonstra um erro ao usar `toBe` em vez de `toEqual`, mostrando que a comparação estava falhando por causa da referência de memória e não da correspondência de valores.
## Conclusão
O autor finaliza mencionando que, após corrigir a comparação para `toEqual`, o teste passa com sucesso, e que na próxima sessão vão abordar como verificar as opções do checkbox.
Video Transcript
Continuando aqui, vamos verificar se o checkbox list tem um label frutas que gosta.
Vamos lá, criar um novo teste.
Pode desculpar.
Deve incluir um checkbox list com o label frutas que gosta.
Vamos lá, da mesma maneira vamos usar o findware.
Um bom findware, a node, propname, frutas.
Esse cara vai nos dar o checkbox.
Vou botar dentro da variável checkbox.
E a gente vai verificar, expect checkbox.prop label, que seja frutas que gosta.
Note que eu nem usei parênteses aqui, porque se eu tiver só um argumento para a função anônima de flash,
não precisa incluir os parênteses, é opcional.
Isso é do s6, certo?
Vamos lá, desci, deu certo?
Sem problemas.
Vamos verificar, vou aqui na implementação, remover algumas coisas para ficar errado.
Se recebeu isso, que está errado, não esperava isso, então está tudo ok.
Vamos lá salvar, reverter e vamos verificar agora as options.
Note que as options passarem por checkbox list, é fruta options, que vem daquele arquivo de constants,
barraindex.js, que vou ter aqui na tela de cima.
Pai na hora de cima, fruta options definido como uma lista de objetos, um id, label e value.
Note que esse cara aqui a gente vai verificar se é exatamente esse objeto, certo?
Então vamos lá, eu vou até copiar esse objeto aqui.
Test deve incluir um checkbox list que leva para a opção,
combate uma lista de objetos, opa, objetos com informações de cada fruta.
Deixe-me dar só a propção aqui, desculpa, para você ver melhor.
Vamos lá passar segundo argumento para o teste, que é uma função anônima com implementação do teste.
Vamos fazer da mesma maneira, anteriormente, component, findware, node, name.
Frutas, para capturar esse checkbox list.
Aí você vai botar um variável.
Aí vamos pegar o que?
Spec, checkbox, ponto prop, qual é a prop, options.
Espero que esse cara seja o que aquela lista, né?
Essa lista aqui que eu copiei aqui.
Certo, então deixa eu definir uma variável com a lista de frutas.
Não acorde-se de copiar, mas eu copiei aqui porque tinha várias coisas,
mas estou me cuidando de copiar da própria implementação, porque na verdade você está fazendo um teste.
E se você criar um teste errado, aí não vale, né?
O teste está errado e a implementação também é errada. Então tome muito cuidado, certo?
Então esse cara aqui, o options do checkbox list, tem que ser igual, exatamente igual a essa lista aqui de frutas,
que a gente definiu um arquivo de constantes lá, index.js, na pasta constants.
Então vamos tentar usar o 2B, lista de frutas, e ver o que acontece.
Salvar, vamos ver no terminal.
Opa, esperava que seja esse cara, mas recebeu esse cara.
Mas esses caras parece que são a mesma coisa, mas por que ele está dando errado?
Então esse detalhe entre o 2B e o chamado 2Equal, né?
O 2B verifica se aquilo que você forneceu tem a mesma referência daquilo que está lá direito.
Como esses objetos aqui, esse objeto, desculpa, essa lista de frutas,
não é a mesma lista de frutas option aqui, que foi definido no arquivo index da pasta constants.
Ele vai dar falso, porque esses caras estão em locais diferentes na memória.
Então a gente tem que usar não 2B, mas o 2Equal, certo?
O 2Equal vai verificar, comparar a lista e verificar se cada valor está idêntico à outra lista.
Não precisa ser a mesma lista na memória, por ser em locais diferentes,
mas ele vai verificar só os valores que estão dentro dessa lista, certo?
Vamos salvar o 2Equal e agora passou, certo?
Só para você ver aqui, se eu remover o G aqui de um desses objetos,
e você notar aqui que ele já vai falar que está errado,
que eu tinha remover do G, do morano, do terceiro aqui, que foi receber o terceiro,
a cada esperável que seja morando, porque eu escrevi o teste com coisa errada,
e mas na verdade recebeu isso.
Então esse é o 2Equal versus o 2B.
Com isso a gente termina esse teste.
Então na próxima a gente vai dar uma olhada no check options.
Então até lá, tchau!
Nenhum comentário ainda (loading...)
Nenhum comentário ainda (loading...)
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: