DEV Community

Gabriel J
Gabriel J

Posted on • Edited on

O que são técnicas de mock em testes, e quais os principais tipos?

As técnicas de mock são usadas para simular o comportamento de objetos ou componentes que não estão disponíveis durante o teste ou não estão realmente disponíveis. O objetivo é isolar a unidade de código em teste para poder ser testada independentemente.
Uma simulação é uma implementação simulada de um objeto ou componente que substitui o objeto real durante o teste. Pode ser usado para simular o comportamento de objetos ou componentes que executam operações externas como acesso ao banco de dados, chamadas de API, comunicação de rede, etc. Ao simular esse comportamento, os testes podem ser executados de forma mais rápida, previsível e repetitiva sem depender de recursos externos lentos ou instáveis.

Qual é a diferença entre mocks e stubs?

Um stub é uma implementação simples de uma interface ou classe usada durante o teste de unidade para substituir o comportamento de objetos do mundo real. Um stub fornece uma resposta predefinida para uma chamada de método específica, portanto, você não precisa chamar o objeto real durante o teste. Por exemplo, você pode usar stubs para substituir objetos de acesso a dados. Um objeto de acesso a dados normalmente lê e grava informações em um banco de dados externo e fornece valores predefinidos que simulam a resposta do banco de dados.

Mocks, por outro lado, são objetos que simulam o comportamento de objetos reais de uma forma mais complexa do que stubs, e são normalmente usados ​​para testar interações mais sofisticadas entre objetos. Você pode configurar simulações para ver se um determinado método foi chamado, com quais parâmetros e quantas vezes. Isso permite que você use mocks para testar o comportamento de outro objeto ou um objeto que depende de um sistema externo.
Existem várias técnicas de simulação para testes, incluindo:

  • Stubbing: Uma técnica de criação de um objeto fictício para fornecer uma resposta predefinida a uma determinada chamada de método. Por exemplo, um objeto fictício pode ser configurado para sempre retornar um determinado valor quando seu método é chamado.

  • Mocking: A técnica de criar objetos simulados para simular o comportamento de objetos reais. Por exemplo, você pode configurar um objeto fictício para registrar chamadas de método de entrada e verificar se elas correspondem ao que seu teste espera.

  • Forge: Uma técnica para criar objetos fictícios para simular objetos reais com implementações simplificadas. Por exemplo, em vez de usar um banco de dados real, você pode criar um banco de dados simulado e armazenar os dados na memória.

Você pode combinar essas técnicas para criar testes mais robustos e abrangentes que isolam a unidade de código em teste e simulam o comportamento de objetos ou componentes externos.

Top comments (0)