레거시 코드 일를 테스트하기 위해 Subclass and Override Method 방법 적용

Subclass and Override Method 방법

참고 링크: https://youtu.be/Dct4bGKCmI8

테스트하기 어려운 부분이 존재할 때 다루는 기법

1. 레거시 코드에서 테스트 대상을 방해하는 부분을 메소드로 분리한다.

  • 레거시 코드의 의존성을 분리하기 위해 메소드 단위로 코드를 분리

2. 분리한 메소드를 protected 로 변경한다

3. 테스트하고자 하는 클래스를 상속받아 테스트용 클래스를 만들고, 분리한 메소드를 재정의 한다.

  • Stubbing
  • 실제 동작과는 다르게 테스트 코드를 쉽게 만들기 위한 작업

4. 테스트용 클래스를 이용해서 테스트 대상을 테스트하는 코드를 작성한다.