0
외부 호출을하는 코드를 테스트하려고합니다. 나는 그 부름을 조롱하고 싶다. 나는이 있고, 테스트 클래스 내 설정 기능에python mock 부작용 반환 값
def mock_function(*args, **kwargs)
io_obj = StringIO()
for k,v in kwargs.iteritems():
io_obj.write("{}: {}\n".format(k, v)
print "\n{}".format(io_obj.getvalue()) # for testing purposes
return io_obj
: 호출 키워드 인수를합니다, 그래서 난 내 시험에서이 작은 도우미 함수를 작성, 내 테스트 기능에
@patch('function_to_test')
def setUp(self, mock_dude):
self.mock_client = mock_dude.return_value
self.mock_client.function_to_test.side_effect = mock_function
self.client = ClientClass()
를 I 외부 함수를 호출하는 함수를 호출 중입니다. mock_function에서 출력물을 얻었으므로이 함수를 올바르게 조롱하고 있다는 것을 알고 있습니다. 내 질문은 다음과 같습니다
mock_function에서 만든 io_obj는 어떻게 얻을 수 있습니까? 내 외부 함수는 아무것도 반환하지 않습니다.
당신이 그들을 일단 당신이 키워드 인수에 대해 수행 할 수 있습니까? – dano
나는 (assert_equals) io_obj의 값을 기대했던 것과 비교하고 싶다. – Mark
mock은 전달 된 모든 인수를 캡처합니다. 왜 도우미가 필요하고, 왜'StringIO()'객체로 전체 무용을해야할까요? –