답변:
스텁 메소드는 단순하지만 유효한 (반드시 정확한 것은 아니지만) 결과를 리턴하는 메소드입니다.
일반적으로 인프라를 구축 할 때 만들어지며 현재 필요한 모든 방법에 시간을 투자하고 싶지 않습니다. 대신 스텁을 작성하여 모든 것이 컴파일되고 IDE의 자동 완성 기능은 사용하려는 메소드에 대해 알 수 있습니다.
스텁이 사용되는 또 다른 장소는 테스트 할 때 조롱하는 것입니다. 종속성 주입을 통해 일반적인 종속성 대신 스텁 메소드를 제공하여 고정 된 결과를 리턴 한 다음 코드가 올바른 방식으로 작동하는지 확인하십시오. 이렇게하면 테스트하려는 코드로 테스트가 분리되므로 해당 테스트를 실행하기 위해 데이터베이스를 가동 할 필요가 없습니다.
아마도 이것은 구체적인 예로 가장 잘 대답 될 것입니다. 데스크탑 애플리케이션을 작성하는 경우를 고려하십시오. 당신은라는 기능을 가지고하기로 결정했습니다 createMenubar
, createToolbar
그리고 createMain
그래서 당신의 응용 프로그램 생성자는 단정하고 깔끔입니다.
기본 코드는 다음과 같습니다 (이 예제는 파이썬).
class ExampleApp():
def __init__(self):
self.createMenubar()
self.createToolbar()
self.createMain()
모든 것이 작동 할 때까지 주요 기능이 실패하므로 개발 중에 앱을 어떻게 테스트 할 수 있습니까? 예를 들어에서 작업을 시작 createMenubar
하면 GUI의 도구 모음 또는 기본 영역을 구현하지 않았기 때문에 메뉴 표시 줄을 작성한 후 초기화에 실패합니다.
이 스텁가 와서 어디라는 함수를 만들 수 있습니다. 인 createToolbar
및 createMain
그 충족 실제로 구현하지 않고 응용 프로그램 생성자 (이 기능이 존재, 즉 것을)의 요구 사항. 이러한 기능은 스텁입니다.
def createToolbar():
pass
def createMain():
pass
이러한 스텁을 사용하면 도구 모음 또는 프로그램의 주요 부분에 대해 걱정할 필요없이 기본 프로그램 및 메뉴 표시 줄을 구현할 수 있습니다. 결국 툴바로 이동하여 스텁을 실제 기능으로 바꿉니다. 마지막으로 스텁을 제거하고 createMain
실제 구현을 제공합니다.
스텁은 반드시 아무 것도 할 필요는 없습니다. 예를 들어 이러한 스텁은 앱 생성자가 배치 할 수있는 빈 컨테이너 위젯을 작성할 수 있습니다. 요점은 당신이 더미 함수 나 객체 생성한다 충분히 당신이 그것을 개발하는 동안 다른 코드를 실행할 수 있도록하기를. 시간이 지남에 따라 신청이 완료 될 때까지 스텁을 하나씩 교체합니다.