0Pricing
CSS Academy · Aula

Testes unitários de CSS com Jest

Teste saídas de CSS-in-JS e componentes estilizados com instantâneos usando Jest e comparadores relacionados.

Testes unitários de CSS com Jest é uma aula grátis de CSS Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CSS Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CSS Academy inclui 4 aulas no total.

Por que testar CSS com Jest?

Os testes unitários de CSS verificam estilos calculados, aplicação de classes e comportamento do leiaute programaticamente. Eles detectam regressões na lógica do CSS (classe incorreta aplicada, modificador ausente) sem exigir uma captura de tela do navegador ou uma inspeção visual manual.

JSDOM e suporte a CSS

Por padrão, Jest usa JSDOM, que oferece suporte limitado a CSS — ele não calcula o leiaute nem avalia seletores complexos. Para testes básicos de presença de classes e estilos em linha, JSDOM é suficiente; para testar propriedades calculadas, use jest-environment-jsdom com simulações de módulos CSS.

Testando a aplicação de classes

Renderize um componente e verifique se as classes CSS corretas são aplicadas com base nas propriedades ou no estado. Isso confirma que a lógica condicional das classes (ativa, desativada, variante de erro) funciona corretamente sem verificar valores específicos de estilo.

<button class="btn-primary">Primary Button</button>

Módulos CSS em testes

Jest transforma as importações de módulos CSS usando identity-obj-proxy. Esse proxy retorna a string do nome da classe para qualquer propriedade acessada: styles.primary retorna "primary". Os testes verificam nomes de classes sem precisar aplicar CSS real.

jest-styled-components

Para projetos com Styled Components, jest-styled-components adiciona o comparador toHaveStyleRule. Teste se um componente estilizado aplica os valores corretos das propriedades CSS com base nas propriedades, sem exigir que um navegador real calcule os estilos.

<button class="btn">Enabled</button>
<button class="btn" disabled>Disabled (0.5 opacity)</button>

@testing-library/jest-dom

jest-dom estende o Jest com comparadores específicos do DOM: toHaveStyle (verifica estilos em linha ou calculados), toHaveClass (verifica a lista de classes) e toBeVisible (verifica display/visibility/opacity). Eles tornam as verificações de CSS legíveis e expressivas.

Testes de captura para nomes de classes

As capturas de componentes registram a marcação renderizada, incluindo os nomes das classes. Renomeações de módulos CSS ou alterações na lógica condicional das classes aparecem como diferenças nas capturas. Isso é útil para detectar rapidamente alterações não intencionais de classes, mas exige disciplina na revisão cuidadosa das capturas.

Limitações dos testes de CSS com Jest

Jest não consegue calcular o leiaute (offsetWidth, getBoundingClientRect), avaliar consultas de mídia nem executar animações CSS. Essas tarefas exigem um ambiente de navegador real por meio do Playwright ou do Cypress. Os testes de CSS com Jest são complementares — não substituem os testes em navegador.

Testando propriedades personalizadas do CSS

Defina propriedades personalizadas do CSS em um elemento contêiner nos testes: element.style.setProperty("--color-primary", "red"). Leia os valores calculados com getComputedStyle(el).getPropertyValue("--color-primary"). JSDOM oferece suporte à leitura de propriedades personalizadas, mas não à cascata.

Testando classes de animação

Verifique se as classes acionadoras de animação são adicionadas ou removidas nos momentos corretos: teste se um componente de janela modal adiciona a classe animate-enter ao ser aberto e a classe animate-exit antes da desmontagem. O próprio CSS da animação é testado por meio do VRT.

Cobertura da lógica do CSS

A lógica do CSS reside no JavaScript: strings condicionais de classes, valores do provedor de temas e geração de objetos de estilo. A cobertura do Jest (Istanbul) cobre essa lógica de CSS em JavaScript. Escreva testes para cobrir todos os ramos, garantindo que cada combinação de variante e estado seja exercitada.

Verificação de conhecimento

O que identity-obj-proxy faz quando usado com módulos CSS no Jest?

Resumo

Os testes unitários de CSS com Jest verificam a lógica de aplicação de classes, a estilização condicional e o comportamento de módulos CSS sem um navegador real. Use identity-obj-proxy para módulos CSS, jest-styled-components para Styled Components e os comparadores do jest-dom para verificações legíveis. Combine-os com VRT para obter uma cobertura abrangente da qualidade do CSS.

Perguntas Frequentes

A aula “Testes unitários de CSS com Jest” é grátis?

Sim — o texto completo de “Testes unitários de CSS com Jest” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CSS Academy, atualize para CoddyKit PRO. O curso de CSS Academy inclui 4 aulas no total.

O que vou aprender em “Testes unitários de CSS com Jest”?

Teste saídas de CSS-in-JS e componentes estilizados com instantâneos usando Jest e comparadores relacionados. Você pratica CSS Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar CSS Academy?

Nenhuma experiência prévia é necessária. CSS Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.

Quanto tempo leva a aula “Testes unitários de CSS com Jest”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de CSS Academy?

Sim. Cada aula de CSS Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Conceitos de testes de regressão visual
  2. Percy e Chromatic para Storybook
  3. Testes unitários de CSS com Jest
  4. Testes de acessibilidade: color-contrast e foco
← Voltar para CSS Academy