Dando sequência em nosso setup de automação, vamos falar sobre os testes unitários.
Testes unitários são recomendados por alguns motivos, entre eles:
São rápidos e baratos;
Não tem alto acoplamento;
Testam pequenas partes do software;
Não dependem de outros componentes.
Além dessas vantagens, podemos destacar outros benefícios:
Melhoria da qualidade geral da base de código;
Redução de duplicação e acoplamento entre módulos;
Facilita refatoração;
Aumento da segurança ao realizar modificações no código.
Estratégias de teste
Uma estratégia muito interessante para os testes unitários é o TDD.
O TDD é uma metodologia de desenvolvimento de software, sua premissa é: testar antes do código existir.
Parece papo de maluco, mas no final faz sentido.
A grande dificuldade é mudar o paradigma.
Ele tem o lema:
Escreva um teste (com falha). Depois algum código para fazê-lo passar. Garanta que o teste seja aprovado e repita para o próximo requisito.
Esse ciclo do TDD é sem fim.
E isso me deixou com a pulga atrás da orelha.
Se a acessibilidade é um processo de validação contínuo, porque não aliar os dois?
E ai que nasce o TDD focado em acessibilidade.
TDD focado em acessibilidade
Para apoiar essa jornada você pode usar algumas bibliotecas, como:
Testing Library;
jest-dom;
user-event.
Imagine o cenário, você precisa validar se os botões do design system recebem o foco visível quando o usuário pressiona TAB.
Com o Testing Library e as bibliotecas mencionadas o teste ficaria assim:
Com esse simples teste, validamos o cenário proposto de maneira rápida e prática.
Um ponto importante para mencionar, a Testing Library possui versões para:
Existem versões do Testing Library para diversas bibliotecas e frameworks javascript, fica a gosto do freguês.
Outra abordagem, seria usar o Cypress Component Testing.
Não importa qual a ferramenta, o objetivo do TDD é o mesmo.
Tenha em mente os seguintes pontos:
Identifique o componente a ser testado;
Escreva casos de testes descrevendo os comportamentos que não atende aos requisitos de acessibilidade;
Faça os testes passarem corrigindo os problemas de acessibilidade no componente.
Dica de ouro: procure as interações por teclado dos componentes, você pode extrair cenário de testes através deles.
Por exemplo, o `