본문 바로가기
Spring

테스트코드가 프로덕션코드에 영향을 주어서는 안된다?

by Jammini 2024. 2. 3.
728x90

목차

  1. 개요
  1. 두 가지 관점
  1. 어떤 관점이 더 옳은가?
  1. 결론

1. 개요

테스트 코드를 작성하면서 어려움을 겪고 말았다. 상황은 다음과 같다.

서비스 테스트 코드를 작성할때, RequestDto가 필요한데, Dto 클래스는 getter만 열어둔 상황.

실제 프로덕트 코드에서는 Controller를 통해 @RequestBody로 들어오기 때문에 문제는 없지만,
테스트 코드에서 Reflection을 이용해 값을 채우거나 mapper를 이용해서 작성하였는데, 여기서 고민이 시작되었다.

2. 두 가지 관점

  1. 프로덕션 관점
  • @Builder나 @Allargument가 없어도 프로덕션 코드에서는 @RequestBody로 들어오기 때문에 필요하지 않다.
  1. 테스트 관점
  • 테스트 코드를 작성할 때 사용하는 코드니까 작성해도 무방하다.

3. 어떤 관점이 더 옳은가?

나는 위의 두가지 관점 중 1번의 관점에서 바라보았고 이유는 테스트코드가 프로덕션 코드에 영향을 주면 안된다고 생각하였다.

다른 개발자에게 의견을 들어보니 생성자를 만들어 테스트코드를 완성하는 쪽인 관점도 있었다.

의견이 다를뿐이지 둘 다 옳게 바라본 관점이라고 생각한다.

4. 결론

Builder나 생성자를 통해 테스트 코드 작성의 용이함을 가져올 뿐 테스트코드 역할에 기여가 되지는 않는다.

그렇지만 테스트 코드를 빠르고 정확하게 작성하는 것 또한 중요하기에 아래와 같은 조건을 만족한다면 추가할 것이다.

  1. 프로덕션 코드에 영향을 주는 코드인가?
  1. 테스트코를 용이점이 뚜렷한가?

반응형