How to Implement Cucumber Tests?
Criação de Testes com Cucumber e Fisher
Introdução à Criação de Testes
- O foco da discussão é a criação de testes utilizando o framework Cucumber, especificamente em relação à especificação de Fisher.
- Um cenário específico é apresentado: registrar um novo aluno com um CPF já existente, destacando a importância da legibilidade no código.
Estrutura do Cenário de Teste
- Para cada passo do cenário, é necessário implementar o código que automatiza as ações correspondentes.
- A notação utilizada para casar texto nos arquivos de teste é explicada, onde caracteres especiais indicam o início e o fim das frases esperadas.
Execução dos Passos do Teste
- O primeiro passo envolve abrir uma página específica e verificar se o título corresponde ao esperado; caso contrário, o teste falha.
- O uso de comandos assíncronos na comunicação com o navegador é abordado, enfatizando a necessidade de esperar pela resposta antes de prosseguir.
Verificação da Existência do Aluno
- Um segundo passo verifica se não existe um aluno cadastrado com determinado CPF antes de tentar registrá-lo.
- A implementação desse passo inclui a filtragem dos elementos HTML para garantir que nenhum aluno com aquele CPF esteja presente na lista.
Implementação Detalhada do Código
- A execução dos comandos requer atenção às operações assíncronas entre os testes e o navegador, garantindo que as respostas sejam recebidas corretamente.
Filtrando Elementos com CPF
Processo de Filtragem
- O objetivo é filtrar todos os elementos de uma lista que possuem um CPF igual ao parâmetro fornecido, resultando em uma lista reduzida.
- A filtragem verifica se o texto do elemento HTML na lista corresponde ao CPF passado como parâmetro (exemplo: 683).
- Utiliza-se o método
getTextpara acessar o texto do elemento, garantindo que a condição de filtragem seja aplicada corretamente.
Verificação da Lista Resultante
- Após a filtragem, verifica-se o tamanho da lista resultante; se for zero, significa que não há alunos com o CPF especificado.
- Se a lista tiver elementos, isso indica que pelo menos um aluno com o CPF 683 está presente na lista.
Execução das Ações
- Se os testes anteriores forem bem-sucedidos, prossegue-se para a execução da ação desejada.
- O sistema deve estar em um estado onde não existe aluno cadastrado com o CPF 683 antes de tentar registrar um novo aluno.
Registro de Novo Aluno
Parâmetros e Interação com HTML
- Ao tentar registrar um novo aluno chamado "Mário" com CPF 683, são passados dois parâmetros para a função responsável.
- O código busca no documento HTML pelo elemento input chamado
name box, permitindo digitar informações diretamente nesse campo.
Preenchimento dos Campos
- O campo
nameé preenchido automaticamente com "Mário", enquanto o campocpf boxrecebe o valor 683.
- Um botão "Adicionar" é clicado para efetivar a adição do novo aluno ao sistema.
Verificação do Cadastro
Confirmação da Inclusão
- Após adicionar Mário ao sistema, realiza-se uma nova verificação na lista de alunos para confirmar se ele foi cadastrado corretamente.
- A busca envolve verificar todos os elementos chamados
aluno list, correspondendo pares de nome e CPF.
Filtragem Final
Verificação de Condições em Listas
Análise da Lista Resultante
- O modo anterior de verificação apenas satisfazia a condição, permitindo que a lista resultante tivesse tamanho zero se ninguém atendesse à condição ou tamanho um se a aluna Mari com CPF 683 estivesse presente.
- A verificação do tamanho da lista é crucial:
- Tamanho igual a um indica que Mari está na lista com o CPF correto.
- Tamanho diferente de um (zero) sugere que não foi possível cadastrar a aluna Mari.