Teste comportamento no nível em que o usuário experimenta. Testes de componente que renderizam um componente e interagem por texto visível e papéis pegam mais bugs por unidade de esforço; testes unitários puros servem para lógica como formatação e reducers; um conjunto pequeno de testes ponta a ponta cobre as jornadas críticas como cadastro e checkout. Evite testes que afirmam sobre detalhes de implementação, já que quebram a cada refactor sem pegar regressões reais.
Por que os entrevistadores perguntam isso
O entrevistador quer ver julgamento sobre custo e valor em vez da recitação da pirâmide de testes. Testes de frontend são notoriamente frágeis, então ele escuta como você evita acoplar à estrutura da marcação, como trata chamadas de rede e se tem opinião sobre testes de snapshot. Também diz se você deixaria uma suíte em que a próxima pessoa confia.
Como estruturar sua resposta
- Enuncie o princípio: teste o que o usuário faz, não como aquilo foi construído.
- Atribua um tipo de teste a cada tipo de código.
- Explique como você lida com rede e tempo.
- Nomeie uma prática que você evita e por quê.
Exemplo de resposta
Minha regra é que um teste deve falhar quando o comportamento quebra e sobreviver a um refactor. Então a maioria dos meus testes renderiza um componente e o dirige como um usuário faria, achando elementos por papel e label em vez de test ids ou nomes de classe, o que significa que a acessibilidade do componente também é exercitada. Lógica pura como um formatador de datas ou um reducer ganha testes unitários simples, porque são baratos e rápidos. Depois uma suíte ponta a ponta pequena em Playwright sobre as jornadas que custam dinheiro se quebrarem: cadastro, login, checkout. Chamadas de rede são interceptadas na fronteira com um mock server em vez de mockar a função fetch, para o teste cobrir meu código de requisição real. O que evito são testes de snapshot grandes, porque ninguém revisa um diff de duzentas linhas e eles são aceitos às cegas, e qualquer coisa que afirme sobre estado interno. A outra coisa em que insisto é que testes ponta a ponta rodem contra um ambiente com dados semeados, já que dados compartilhados instáveis são o que faz times começarem a ignorar builds vermelhos.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Como você impede que testes ponta a ponta fiquem instáveis?
- Qual é a sua abordagem para testar um componente que busca os próprios dados?
- Onde entram testes de regressão visual para você?
Mais perguntas para Desenvolvedor Frontend
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas