Introdução
O problema
Tu queres escrever testes sustentáveis para a tua Interface de Utilizador de Web. Como parte deste objetivo, queres que os teus testes evitem incluir detalhes de implementação dos teus componentes e ao invés disto focar em fazer com que os teus testes darem-te a confiança para qual estão destinados. Como parte disto, queres que a tua base de teste seja sustentável a longo prazo assim as refatorações dos teus componentes ( que mudam a implementação mas não a funcionalidade) não quebram os teus testes e não abrandam-te e nem a tua equipa.
Esta solução
A DOM Testing Library
é uma solução muito leve para testagem de nós de DOM
(quer simulado com JSDOM
conforme fornecido
por padrão com a Jest ou no navegador). Os utilitários principais que
fornece envolvem consultar o DOM por nós de uma maneira que seja parecida a como
o utilizador encontra os elementos na página. Neste sentido, a biblioteca ajuda
a garantir que os teus testes dão-te confiança no código da tua Interface de
Utilizador. O principal princípio orientador da DOM Testing Library
é:
Como parte deste objetivo, os utilitários que esta biblioteca fornece facilitam
a consulta do DOM na mesma maneira que o utilizador faria. Encontrando elementos
de formulário pelo texto dos seus rótulos (tal como um utilizador faria),
encontrando as ligações e botões a partir do seu texto (como um utilizador
faria), e muito mais. Ela também expõe uma maneira recomendada para encontrar
elementos por um data-testid
como uma "escotilha de fuga" para os elementos
onde o conteúdo de texto e rótulo não fazem sentido ou não é prático.
Esta biblioteca encoraja as tuas aplicações a serem mais acessíveis e permitem-te conseguir que os teus testes usem os teus componentes de uma maneira mais próxima a maneira que um utilizador fará, o que permite os teus testes darem-te mais confiança de que a tua aplicação funcionará quando um utilizador de verdade usá-la.
O que esta biblioteca não é*:
- Um executor de teste ou abstração
- Especifica à uma abstração de testagem (embora recomendamos a Jest como nossa preferência, a biblioteca funciona com qualquer abstração. Consulte a guia Usando Sem a Jest).