0
클래스 기반 함수 용 테스트 케이스 작성 시도. 이것은 내가 그냥 query_fun
을 조롱하고 나머지를 할 수있는 테스트 케이스를 만들 필요가 내 수업클래스 내부의 메소드를 조롱하는 방법
class Library(object):
def get_file(self):
pass
def query_fun(self):
pass
def get_response(self):
self.get_file()
response = self.query_fun()
# some business logic here
return response
의 골격이다. 아래 시도했지만 올바른 방향없는 것 같다 내가 기대하고있어 무엇
from unittest import mock, TestCase
from library.library import Library
class TestLibrary(TestCase):
def setUp(self):
self.library = Library()
@mock.patch('library.library.Library')
def test_get_response(self, MockLibrary):
mock_response = {
'text': 'Hi',
'entities': 'value',
}
MockLibrary.query_fun.return_value = mock_response
response = MockLibrary.get_response()
self.assertEqual(response, mock_response)
이 설정 모의를하고 get_response
를 호출하면 실제로 원래 query_fun
메소드를 호출, 대신 모의 query_fun
를 호출하지 않습니다.
모의 단지 기능 만. 나는이 대답이 내가 찾고있는 것이라고 생각한다. 그러나 또 다른'test_function'을 쓰면'TestLibrary'는 실제로'query_fun' 모의 메소드를 호출하지 않고 그냥 보통 메소드를 호출합니다. –
@RobC : 각 테스트에는'@ mock.patch()'데코레이터가 필요합니다. 한 시험에서 나오는 모의는 다른 시험으로 이어지지 않습니다. –
흠 ... 나는 그것도 생각했다. 하나의 마지막 질문'self.botter.query_fun'을 mock query_fun'으로 대체 할 수있는 방법이 있습니까? –