Skip to main content

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 é:

Quanto mais os teus testes se parecerem com a maneira que o teu software é usado, mais confiança eles podem dar-te.

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 é*:

  1. Um executor de teste ou abstração
  2. 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).