Sobes.tech
Junior — Middle

Pode explicar o que se entende por objetos mock ao usar pytest?

sobes.tech IA

Resposta da IA

Os objetos mock no pytest são objetos especiais que imitam o comportamento de objetos ou funções reais para testes. Permitem isolar o código testado de dependências externas, como pedidos de rede, bases de dados ou outros componentes, para verificar a lógica sem realizar operações reais.

No pytest, para criar objetos mock, muitas vezes usa-se a biblioteca unittest.mock, que fornece a classe Mock e decoradores para substituir funções e métodos.

Exemplo de uso de mock para substituir uma função:

from unittest.mock import Mock

def get_data():
    # Suponha que esta função faz uma requisição a uma API externa
    pass

def process():
    data = get_data()
    return data * 2

# No teste, substituímos get_data
mock_get_data = Mock(return_value=10)

# Substituímos a função get_data por mock
get_data = mock_get_data

assert process() == 20
mock_get_data.assert_called_once()

Assim, os objetos mock ajudam a controlar o comportamento das dependências e a verificar como o código testado interage com elas.