[typescript] 테스트 더블의 제한과 적재적소 사용하기

테스트 더블은 소프트웨어 테스트를 통해 모듈이나 컴포넌트들과의 상호작용을 시뮬레이션하기 위한 객체를 가리킵니다. 테스트 더블은 테스트 환경을 향상시키고 테스트의 안정성을 보장합니다. 그러나 테스트 더블의 제한과 적절한 사용에 대해 고려해야 할 사항이 있습니다.

테스트 더블의 제한

테스트 더블을 사용할 때 무분별하게 목업, 스텁, 가짜 등을 사용하면 테스트의 가독성과 유지보수성이 떨어질 수 있습니다. 또한, 실제 코드와의 결합도가 높아질 수 있어서 테스트의 신뢰도가 떨어질 수 있습니다. 따라서 실제 필요한 부분에만 테스트 더블을 사용하는 것이 중요합니다.

적재적소 사용하기

적재적소(Just Enough) 사용은 특정 상황에 필요한 만큼의 테스트 더블을 사용하는 것을 의미합니다. 예를 들어, 외부 API 호출을 시뮬레이션하기 위해 목업을 사용하거나, 특정 함수의 반환값을 제어하기 위해 스파이를 사용하는 등의 경우에 적재적소 사용이 중요합니다. 이를 통해 테스트 코드의 유지보수성을 높일 수 있습니다.

적절한 테스트 더블을 사용하면 테스트의 안정성과 가독성을 높일 수 있습니다. 정확한 사용 방법과 적재적소 사용을 고려하여 효과적인 테스트 더블을 활용할 수 있습니다.

더 많은 정보를 원하시면 마틴 파울러의 Mocks Aren’t Stubs를 참고하십시오.

typescript

import { Customer } from './customer';

export class Order {
  customer: Customer;

  constructor(customer: Customer) {
    this.customer = customer;
  }

  // ...

  getTotalPrice(): number {
    // ...
  }
}