메소드 스텁

메소드 스텁(method stub) 혹은 간단히 스텁은 소프트웨어 개발에 쓰이고 다른 프로그래밍 기능을 대리하는 코드이다. 스텁은 기존 코드(예를 들어 원격 머신의 프로시저)를 시뮬레이션하거나 아직 개발되지 않은 코드를 임시로 대치하는 역할을 수행한다. 따라서 스텁은 일반 소프트웨어 개발과 테스팅을 포함하여 특히 이식과 분산 컴퓨팅에 유용하다.

의사코드로 기술한 스텁의 예를 들면:

 BEGIN
 Temperature = ThermometerRead(Outside)
 IF Temperature > 40 THEN
 PRINT "It's HOT!"
 END IF
 END

 BEGIN ThermometerRead(Source insideOrOutside)
 RETURN 28
 END ThermometerRead

위의 의사 코드는 온도를 반환하는 함수 ThermometerRead를 이용한다. ThermometerRead는 하드웨어 장치를 읽는 기능을 수행하여야 하지만, 아직 이에 필요한 코드를 포함하고 있지 않다. 따라서 ThermometerRead는 프로세스를 시뮬레이션하는 것이 아니라 단지 허용 가능한 값을 돌려줌으로써 메인 프로그램을 일부라도 테스트할 수 있게 한다. Source라는 매개변수를 통해 실내와 실외 온도 중 무엇을 필요로 하는지 지정할 수 있지만, 호출자로부터 실제 전달된 값(insideOrOutside의 값)을 사용하지 않는다.

스텁은 자기 자신과 매개변수를 선언하고, 대개의 경우 호출자를 위해 "행복한 시나리오"에서 예상되는 값을 돌려준다. 스텁은 인터페이스가 정의는 되어있으나 아직 구현되지 않았을 때, 인터페이스의 실제 구현 대신으로 주로 사용된다. 스텁은 프로그램과 컴파일되어 링크가 가능한 정도의 코드를 담고 있다. RMI 명명법으로는 스텁은 서버쪽과 스켈레톤(skeleton)으로 통신한다.

같이 보기 

 추상 메소드
 모의 객체
 더미 코드
 테스트 스텁

각주

외부 링크 
 A Stub Generation System For C++ (PDF)
 Stub/mock frameworks for Java 자바를 위한 스텁과 모의 프레임워크 리뷰와 비교

유닛 테스트
소프트웨어 개발