Mocking Pythons solicita módulo para interações simuladas de API
Em nossa busca para testar de forma abrangente o código Python que interage com APIs, simulando efetivamente o módulo de solicitações é crucial. Aqui está uma abordagem passo a passo para simular chamadas requests.get() com respostas personalizadas:
Etapa 1: Simular o módulo Requests
Utilizando o pacote simulado do Python, definimos nossa função personalizada (mocked_requests_get) para substituir requests.get(). Esta função retorna respostas simuladas com base no URL fornecido. Em nosso exemplo, diferentes URLs receberão respostas específicas:
def mocked_requests_get(*args, **kwargs): if args[0] == 'aurl': return 'a response' elif args[0] == 'burl': return 'b response' elif args[0] == 'curl': return 'c response'
Etapa 2: simulação na classe de teste
Em nossa classe de teste, aplicamos a simulação ao módulo de solicitações usando unittest.mock.patch ():
@mock.patch('requests.get', side_effect=mocked_requests_get)
Este decorador envolve nosso método de teste, garantindo que requests.get seja ridicularizado com nossa função personalizada.
Etapa 3: Chamando a visualização e verificando as respostas
Invocamos a função de visualização como de costume e verificamos as respostas esperadas. Nossa função simulada garante que as respostas correspondam às respostas personalizadas que definimos anteriormente:
res1 = requests.get('aurl') assert res1 == 'a response' res2 = request.get('burl') assert res2 == 'b response' res3 = request.get('curl') assert res3 == 'c response'
Seguindo essas etapas, você pode simular efetivamente o módulo de solicitações em seus testes Python, permitindo simular várias respostas de API e testar completamente o comportamento do seu código em diferentes cenários.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3