"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como podemos simular solicitações e respostas em testes de unidade Python?

Como podemos simular solicitações e respostas em testes de unidade Python?

Publicado em 23/11/2024
Navegar:968

How Can We Mock Requests and Responses in Python Unit Testing?

Como simular solicitações e respostas

Introdução

O teste de unidade em Python geralmente envolve simulação dependências externas para simular cenários do mundo real. O mock nos permite controlar o comportamento dessas dependências, proporcionando maior estabilidade e previsibilidade aos nossos testes. Este artigo demonstra como simular o módulo de solicitações do Python e suas respostas para facilitar testes de unidade eficazes.

Etapa 1: Módulo de simulação de solicitações

Para simular o módulo de solicitações, utilize o módulo simulado da biblioteca padrão:

import mock

Crie um objeto simulado para o módulo de solicitações na fase de configuração do teste método:

mockedRequests = mock.Mock()

Configure o objeto simulado para retornar respostas específicas para diferentes URLs quando o método get() for chamado:

mockedRequests.get.side_effect = [
    # First URL: Return 'a response'
    mock.Mock(status_code=200, text='a response'),
    # Second URL: Return 'b response'
    mock.Mock(status_code=200, text='b response'),
    # Third URL: Return 'c response'
    mock.Mock(status_code=200, text='c response')
]

Etapa 2: Chamando a View

Com o módulo de solicitações simulado, chame a função na view que faz as solicitações:

res1 = mockedRequests.get('aurl')
res2 = mockedRequests.get('burl')
res3 = mockedRequests.get('curl')

Etapa 3: Verificando as respostas

Como o módulo de solicitações é simulado, as respostas podem ser facilmente verificadas quanto aos valores esperados :

self.assertEqual(res1.text, 'a response')
self.assertEqual(res2.text, 'b response')
self.assertEqual(res3.text, 'c response')
Declaração de lançamento Este artigo foi reimpresso em: 1729424657 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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