- Published on
Abordagem de caixa branca e caixa preta nos testes unitários
- Authors
- Name
- Wesley Caldas
Abordagem de caixa branca e caixa preta nos testes unitários
Ao escrever testes unitários, muitas vezes nos perguntamos “o que testar?” e “como testar?”. São perguntas cruciais para mentalizar a estrutura do código e dos testes. No desenvolvimento de software é legal saber que para testar um código existem tipos de abordagens diferentes, como a abordagem Caixa Preta e a Caixa Branca.
Abordagem Caixa Preta
Nesse tipo de abordagem, você se concentra apenas nos resultados observáveis externamente. Você testa a funcionalidade do componente como um usuário externo faria, sem se preocupar com a implementação ou como o código funciona internamente. Isso geralmente envolve testar as interfaces públicas do componente, enviando inputs e observando os outputs. Um exemplo é um teste onde o usuário deixa um campo obrigatório em branco e o teste deve verificar se o botão de avançar está desabilitado.
// Exemplo de teste de caixa preta
it('Botão de avançar permanece desabilitado quando campo obrigatório está vazio', () => {
// Simula o comportamento do componente
// Verifica se o botão de avançar está desabilitado
// após deixar o campo obrigatório em branco
});
Abordagem Caixa Branca
Nesse caso, você testa funções internas para garantir que partes cruciais da lógica interna estejam funcionando corretamente. Isso envolve a criação de testes para funções internas que têm uma importância crítica para o comportamento geral do componente ou até mesmo de regras de negócio. Nessa abordagem não testamos o conteúdo visual da tela, e sim o comportamento do código.
// Exemplo de teste de caixa branca
it('Função de cálculo de desconto retorna valor correto', () => {
// Chama a função interna de cálculo de desconto
// Verifica se o valor retornado corresponde ao esperado
});
Em resumo
Caixa Preta:
✅ Teste com foco nas funcionalidades visíveis ao usuário
✅ Não se preocupa com a implementação do código, e sim com o resultado final
Caixa Branca:
✅ Teste em foco na implementação do código
✅ Testa funcionalidades não necessáriamente visíveis ao usuário