728x90
목차
- 개요
- 두 가지 관점
- 어떤 관점이 더 옳은가?
- 결론
1. 개요
테스트 코드를 작성하면서 어려움을 겪고 말았다. 상황은 다음과 같다.
서비스 테스트 코드를 작성할때, RequestDto가 필요한데, Dto 클래스는 getter만 열어둔 상황.
실제 프로덕트 코드에서는 Controller를 통해 @RequestBody로 들어오기 때문에 문제는 없지만,
테스트 코드에서 Reflection을 이용해 값을 채우거나 mapper를 이용해서 작성하였는데, 여기서 고민이 시작되었다.
2. 두 가지 관점
- 프로덕션 관점
- @Builder나 @Allargument가 없어도 프로덕션 코드에서는 @RequestBody로 들어오기 때문에 필요하지 않다.
- 테스트 관점
- 테스트 코드를 작성할 때 사용하는 코드니까 작성해도 무방하다.
3. 어떤 관점이 더 옳은가?
나는 위의 두가지 관점 중 1번의 관점에서 바라보았고 이유는 테스트코드가 프로덕션 코드에 영향을 주면 안된다고 생각하였다.
다른 개발자에게 의견을 들어보니 생성자를 만들어 테스트코드를 완성하는 쪽인 관점도 있었다.
의견이 다를뿐이지 둘 다 옳게 바라본 관점이라고 생각한다.
4. 결론
Builder나 생성자를 통해 테스트 코드 작성의 용이함을 가져올 뿐 테스트코드 역할에 기여가 되지는 않는다.
그렇지만 테스트 코드를 빠르고 정확하게 작성하는 것 또한 중요하기에 아래와 같은 조건을 만족한다면 추가할 것이다.
- 프로덕션 코드에 영향을 주는 코드인가?
- 테스트코를 용이점이 뚜렷한가?
반응형
'Spring' 카테고리의 다른 글
스프링에서 Conditional 어노테이션이란? (0) | 2024.02.19 |
---|---|
Validation 책임과 범위는 어떻게 가져가야할까? (1) | 2024.02.06 |
@NotNull @NotBlank @NotEmpty를 뭐가 다를까? (1) | 2024.02.01 |
상태검증 vs 행위검증 (0) | 2024.01.29 |
logback vs log4j2 (0) | 2024.01.08 |