당신은 응답을 복잡한 모형을 작성할 수있는 모든 도움을 my_api_client = mock.Mock(return_value={'status_code':200, 'json_obj': {'blah':'blah'}})
덕분에 같은 일을 시도했습니다 :
ok_response_mock = mock.MagicMock()
type(ok_response_mock).status_code = mock.PropertyMock(return_value=200)
ok_response_mock.json.return_value = "{'blah':'blah'}"
이것은 (하는 MagicMock를 생성 non-speficied 메소드를 요청할 때 불평하지 않음), 200을 리턴하는 status_code 특성을 추가합니다. JSON 문자열 응답을 .json() 메소드에 구성합니다. my_api_client
이 시험 방법의 매개 변수 인 경우
그래서 :
는
my_api_client_mock = mock.MagicMock()
my_api_client_mock.get.return_value = ok_response_mock
YourModule.YourMethod(my_api_client_mock)
이 이전에 생성 된 모의 응답으로 연결, 모의 매개 변수를 생성하고 테스트 메소드를 호출합니다. 이 모의에 가져온 모듈을 자동으로 생성 및 테스트 방법에 대한 인수로 배치를 패치합니다
@mock.patch('MyModuleUnderTest.my_api_client')
def test_MyMethodUnderTest__response_ok__stuff_happens(self, api_client_mock):
# code to create ok_response_mock
api_client_mock.get.return_value = ok_response_mock
: 경우, 대신, my_api_client
가져온 모듈입니다. 그냥 조롱 한 응답을 조롱하는 사람에게 말하십시오.
['respond'] (https://github.com/getsentry/responses)에 대해 알고 있습니까? 그런 다음 실제로 엔드 포인트를 맞췄는지 확인할 수 있습니다. – jonrsharpe