Distribua o peso por risco em vez de por dogma de pirâmide. Testes unitários para lógica pura e casos limite, uma camada sólida de testes de integração batendo em um banco de verdade dentro de um container, e um número pequeno de testes ponta a ponta cobrindo os fluxos que dão prejuízo se quebrarem, como cadastro, checkout e login. Mocke terceiros na fronteira de rede em vez de fazer stub dos seus próprios módulos.
Por que os entrevistadores perguntam isso
O entrevistador quer saber se os seus testes pegariam bugs de verdade ou só inflariam um número de cobertura. Ele está escutando testes de integração contra um banco de verdade, porque mockar o ORM é a forma mais comum de os times escreverem testes que passam enquanto a produção quebra. Ele também quer ouvir como você lida com testes ponta a ponta instáveis, já que é isso que de fato mata uma suíte com o tempo.
Como estruturar sua resposta
- Declare o princípio: teste onde está o risco.
- Descreva cada camada e do que ela é responsável.
- Explique onde você traça a fronteira do mock.
- Diga como você mantém a suíte rápida e confiável.
Exemplo de resposta
A minha regra guia é que um teste vale a pena se ele teria pego um bug que a gente plausivelmente colocaria no ar. Lógica pura, regras de precificação, tratamento de datas, checagens de permissão, ganham testes unitários rápidos com os casos limite feios. A camada em que eu mais invisto é a de integração: requisição HTTP de verdade na aplicação, Postgres de verdade em um container, migrações de verdade, verificando a resposta e as linhas resultantes. Isso pega as coisas que os mocks escondem, como uma violação de restrição ou uma query que silenciosamente não retorna nada. Terceiros são mockados na fronteira de rede com algo como o MSW ou uma fixture gravada, nunca fazendo stub da minha própria classe de serviço, porque aí eu estou testando o mock. Ponta a ponta eu mantenho deliberadamente pequeno, umas oito jornadas cobrindo cadastro, login, checkout e o fluxo principal, rodando em todo merge. Instabilidade é a coisa com a qual eu sou implacável; um teste que falha aleatoriamente treina as pessoas a rodar o pipeline de novo, então eu conserto ou apago em até um dia. Cobertura eu olho como diagnóstico, nunca como meta.
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ê prepara e limpa dados de teste entre execuções?
- O que você faz quando um teste ponta a ponta está instável?
- Como você testa um componente React que busca dados?
Mais perguntas para Desenvolvedor Full Stack
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