질문을 크게 보자면 코드 분리에 대한 내용으로 볼 수 있을 것 같습니다. 개인의 취향 차이가 있겠지만, 관심사와 재사용성을 기준으로 분리하면 어느정도 이 문제가 해결될 수 있는 것 같습니다. 사실
질문을 크게 보자면 코드 분리에 대한 내용으로 볼 수 있을 것 같습니다. 개인의 취향 차이가 있겠지만, 관심사와 재사용성을 기준으로 분리하면 어느정도 이 문제가 해결될 수 있는 것 같습니다. 사실 테스트 시나리오를 쓸 때에도 비슷한 기준이 적용될 수 있다고 생각합니다. 따라서 테스트에 대한 고려를 아예 할 필요가 없다는 것은 아니지만, 보통 위 기준을 통해 코드를 분리하다보면 자연스레 테스트에 대한 문제도 함께 해결되었던 것 같습니다. (그렇지 않은 경우도 분명 있습니다) 예를 들어, 페이지네이션 컴포넌트를 만든다고 가정해보겠습니다. UI상 이 컴포넌트의 역할은 화면 하단에 페이지 이동 버튼 영역을 출력하는 것이라고 할 때, 기능적으로 페이지네이션 컴포넌트에 어디까지 담을 것인가 고민할 수 있습니다. 예를들면 URL의 페이지에 해당하는 쿼리스트링을 수정하는 것이 있을 수 있습니다. 먼저 이 기능이, ‘페이지네이션 컴포넌트’에 국한된 기능인지 살펴보자면, 그렇지 않을 수 있습니다. 쿼리스트링을 수정하는 작업은 생각보다 많은 곳에서 일어날 수 있으니까요. 그렇다면 이 기능을 별도의 훅이나 함수로 분리할 수 있을테고, 테스트 범위 역시 자연스럽게 분리되게 됩니다. ‘이 함수가 동작했을 때 URL이 변경되는 것을 어떻게 테스트 할 수 있을까?’는 그 이후에 고민할 수 있을 것이구요. 만약 질문자님께서 고민하시는 함수가 어떤 역할을 하는지 정확히 알 수 없으나, 우선 제 댓글과 다른 여러 의견들을 바탕으로 어떤 기준으로 코드를 분리할 것인지 먼저 기준을 세우신 뒤에, 어떻게 테스트를 할 것인가 고민하셔도 괜찮을 것 같습니다. 조심스럽게 생각하건대, 코드가 분리되지 않은 것도 테스트에 영향을 미쳤겠지만 어떤 행동을 어떻게 테스트 하여야 할까에 대한 고민을 좀 더 깊게 해보시는 것도 도움이 많이 되지 않을까 싶습니다!