Introdução ao Jest DOM
O Jest DOM é uma extensão da biblioteca de testes Jest, projetada para simplificar e aprimorar a escrita de testes para manipulação e interação com o DOM (Document Object Model) em aplicações JavaScript, especialmente aquelas desenvolvidas com bibliotecas e frameworks como o React, Vue.js e Angular.
Principais recursos
Matchers para DOM
O Jest DOM fornece uma série de “matchers” (comparadores) específicos para interações com o DOM. Esses matchers tornam mais fácil e expressivo verificar se elementos HTML possuem determinadas características, como classes, valores de atributos, conteúdo e muito mais.
// Exemplo de Uso de Matchers do Jest DOM
expect(element).toHaveClass('minha-classe');
expect(outraElement).toHaveAttribute('disabled');
expect(meuElemento).toHaveTextContent('Texto esperado');
Simulação de eventos
Facilita a simulação de eventos do DOM, como cliques, mudanças e submissões de formulários. Isso permite testar de forma eficaz o comportamento de componentes em resposta a diferentes interações do usuário.
// Exemplo de Simulação de Evento com Jest DOM
fireEvent.click(botao);
fireEvent.change(input, { target: { value: 'Novo valor' } });
Consultas de elementos simplificadas
Oferece métodos simplificados para consultar elementos no DOM, tornando mais fácil selecionar e interagir com elementos específicos durante os testes.
// Exemplo de Consulta de Elemento com Jest DOM
const meuElemento = getByTestId('meu-elemento');
Asserções mais intuitivas
As asserções fornecidas pelo Jest DOM são projetadas para serem intuitivas e expressivas, facilitando a compreensão dos testes e a identificação rápida de problemas.
// Exemplo de Assertiva com Jest DOM
expect(meuElemento).toBeInTheDocument();
Configuração inicial
Para começar a usar o Jest DOM, geralmente é necessário configurar e integrar a biblioteca em seus testes. Isso envolve a instalação do Jest, Jest DOM e a configuração do ambiente de teste. Exemplos de configurações podem incluir:
# Instalação do Jest e Jest DOM
npm install --save-dev jest @testing-library/jest-dom
# Configuração Básica do Jest (arquivo jest.config.js)
module.exports = {
setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect'],
};