How to Implement Cucumber Tests?

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 getText para 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 campo cpf box recebe 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.
Playlists: Testing