프론트엔드 개발자로 일하기

테스트하기 쉬운 코드들의 조건은 무엇이 있을까?

프론트루나 2025. 3. 14. 16:33
반응형

테스트 용이성을 높이기 위한 몇가지 조건들이 있다. 

 

1. 순수함수가 테스트하기 용이하다. 

순수 함수란 동일한 입력에 대해 항상 동일한 출력을 반환하는, 부수 효과가 없는 함수를 의미한다. 부수 효과를 일으키는 비순수 함수를 테스트하는 것은 까다롭다. 예를 들어, 함수 외부의 상태에 의존하거나, API 호출을 하거나, DOM을 직접 조작하는 등의 동작이 포함된 함수는 외부의 영향을 받으므로 테스트의 정확성을 보장받기 어렵다. 입력을 받아 단순한 계산 값을 반환하는 순수함수는 독립적으로 테스트하기 좋다.

 

2. 단일 책임 원칙을 준수한 코드가 테스트하기 용이하다.

하나의 함수나 모듈이 한 번에 많은 역할을 수행하면 테스트를 작성하기 어려워진다. 예를 들어, 데이터를 가져오는 함수가 UI를 렌더링하는 기능까지 포함하고 있다면, 테스트를 작성하기 불리하다. 테스트 코드의 복잡도가 증가하며, 테스트가 실패할 때 그 원인을 파악하기 어려워진다. 역할을 명확히 분리하여 한 가지 기능만 담당하도록 설계하면, 테스트코드가 간결하고 명확해진다.

 

 

3. 예측하기 쉬운 코드가 테스트하기 용이하다. 

코드가 복잡하고 내부 동작을 쉽ㅈ게 이해할 수 없다면, 테스트를 작성하는 것도 어렵다. 따라서 명확한 변수명과 일관된 코드 스타일을 유지하고, 예상치 못한 동작이 발생하지 않도록 설계하는 것이 중요하다. 

 

테스트 용이성을 높이기 위해 코드를 수정하는게 합리적일까?

테스트를 위해 코드를 과도하게 수정하는 것은 오히려 유지보수성을 해칠 수 있습니다. 예를들어 테스트를 위해서 private 메서드를 public으로 바꾸거나, 테스트만을 위한 메서드를 만드는 등의 행위는 코드의 품질을 저하시킬 수 있다. 

 

다만, 테스트 작성이 어렵다면 코드 품질에도 문제가 있을 가능성이 있다. 예를 들어, 함수가 너무 많은 역할을 하거나, 의존성이 강하게 결합되어 있다면 테스트가 어려워질 수 있다. 이럴때는 테스트를 쉽게 만들기 위해 코드 개선을 고려하는 것이 좋다. 

 

 

반응형