응답 제어를 위한 요청 모의
Python에서 모의 패키지는 외부 모듈이나 클래스를 모의하는 강력한 방법을 제공하여 사용자가 조작할 수 있도록 합니다. 행동을 확인하고 상호작용을 검증합니다. HTTP 요청의 맥락에서 요청 모듈 모의는 외부 서비스에 의존하는 코드를 테스트하는 데 특히 유용할 수 있습니다.
1단계: 요청 모듈 모의
요청 모듈을 모의하려면 원하는 응답을 반환하는 사용자 정의 함수로 get() 함수를 패치해야 합니다. 다음과 같이 모의 메소드를 정의할 수 있습니다.
<code class="python">def mocked_requests_get(url, **kwargs): if url == "aurl": return MockResponse("a response") elif url == "burl": return MockResponse("b response") else: raise Exception("URL not mocked")</code>
이 메소드는 유효한 URL을 예상하고 사전 정의된 콘텐츠가 포함된 가상 응답을 나타내는 MockResponse 객체를 반환합니다.
2단계: 원본 요청 모듈 패치
모의 메소드를 정의한 후에는 @mock.patch 데코레이터를 사용하여 원본 요청.get()을 패치할 수 있습니다. 이는 테스트 중인 코드에서 요청한 동작으로 모든 요청을 대체합니다.
<code class="python">@mock.patch("requests.get", side_effect=mocked_requests_get) def test_myview(self, mock_get): # Your test goes here</code>
3단계: 응답 보기 및 확인 호출
이제 평소처럼 함수를 호출하고 예상한 응답을 얻었는지 확인할 수 있습니다. 모의 객체를 검사하여 get() 함수가 특정 인수로 호출되어 원하는 값을 반환했는지 확인할 수 있습니다.
예제 코드:
<code class="python">import requests from unittest import mock class MyViewTest(unittest.TestCase): # ... def test_myview(self, mock_get): self.assertEqual(res1.text, "a response") self.assertEqual(res2.text, "b response") self.assertEqual(res3.text, "c response") # Verify mock calls mock_get.assert_called_with('aurl') mock_get.assert_called_with('burl') mock_get.assert_called_with('curl')</code>
기억하세요 응답의 텍스트 콘텐츠와 모의 메서드에 전달된 호출 횟수 및 인수를 모두 확인합니다. 이를 통해 예상되는 상호 작용이 발생하고 원하는 동작이 달성되었는지 확인할 수 있습니다.
위 내용은 Python에서 요청 모듈 응답을 모의하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!