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.