Skip to content

Latest commit

 

History

History
41 lines (26 loc) · 1.94 KB

File metadata and controls

41 lines (26 loc) · 1.94 KB

프론트엔드 테스트 작성 준비

테스트를 통해 모듈이 사양에 잘 작동하는지 검증

But, 개발자의 개발 비용 증가

결합도 : 한 모듈이 다른 모듈에 의존하는 정도

결합도가 낮고 독립성이 높을수록 수정을 하더라도 다른 모듈에 미치는 영향이 적어 버그 발생 확률이 낮아진다.

결합도가 높으면 테스트의 복잡도 또한 향상된다.

수정이 잦아지고, 누락될 가능성 또한 올라간다.

테스트 코드의 효과

  • 의존성을 줄이기 위한 올바른 설계에 대한 고민
  • 테스트 코드를 기반으로 빠르고 안정적으로 리팩토링이 가능
  • 좋은 테스트 코드는 어플리케이션의 이해를 돕는 문서로서의 기능을 함

올바른 테스트 작성을 위한 규칙

1. 인터페이스를 기준으로 테스트 작성

  • 세부적인 내부 구현을 테스트한다면 의존성이 강한 수많은 테스트를 양산할 수 있다.
  • 따라서 외부에 드러나는 인터페이스를 기준으로 테스트를 작성해야 캡슐화를 위반하지 않을 수 있다.

2. 커버리지보다는 의미있는 테스트인지 고민해야 함

  • 100% 커버리지는 불가능함
    • 테스트 작성 및 유지 보수에 너무 많은 비용이 발생한다.
  • 커버리지를 올리기 위한 의미 없는 테스트 코드가 작성될 수 있다.
    • 예를 들어, 단순 렌더링을 하는 컴포넌트를 테스트하는 것은 비용 낭비
  • 따라서 정말 의미 있는 테스트인지, 어떤 범위까지 테스트해야 효율적인지 고민하고 작성해야 한다.

3. 테스트 코드의 가독성 또한 매우 중요하다!

  • 테스트하고자 하는 내용을 명확히 적어야 한다.
  • 하나의 테스트에서는 가급적 하나의 동작만을 검증한다.
    • 결합도를 낮출 수 있고, 테스트 코드의 의도를 파악하기 쉽다.
    • SRP 원칙