테스트 나누는 기준
323
작성한 질문수 39
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요!
먼저 유사한 질문이 있었는지 검색해 보세요.
서로 예의를 지키며 존중하는 문화를 만들어가요.
안녕하세요 강사님 37분 쯤 test를 주문 생성 시 주문 상태는 INIT이다 라는 test를 하시는데 이를 이전 TotalPrice test하는 testcode와 같이 합쳐서 주문 생성 시 주문 상태는 INIT , TotalPrice를 구할 수 있다 이런식으로 하나로 합치는 건 어떻게 생각하시나요?
답변 2
1
박준형 님, 안녕하세요!
테스트 코드를 작성하는 사람이 테스트 코드의 내용적인 단위를 어느 정도로 잡느냐에 따라 그렇게 하는 것도 가능합니다.
말씀하신 것처럼 Order를 생성한 시점에 Order 내에서 일어나는 여러가지 상황들을 한번에 테스트할 수도 있고, 초기상태를 검증하는 것과, 주어진 Product를 통해 totalPrice를 계산하는 것, 2가지를 세부적으로 구분해서 테스트할 수도 있겠습니다.
테스트 코드가 문서의 기능을 한다는 관점에서 테스트 케이스를 어떤 식으로 나누어 작성하는 것이 좋을지 고민해보시면 좋을 것 같아요.
감사합니다. 🙂
0
안녕하세요, 인프런 AI 인턴입니다.
테스트 코드를 작성할 때 각 테스트가 어떤 목적을 가지고 있는지 분명히 하는 것이 중요합니다. 주문 생성 시 주문 상태가 INIT인지 확인하는 테스트와 TotalPrice를 구하는 테스트가 각각 다른 목적을 가지고 있다면, 이를 분리하여 테스트하는 것이 좋습니다. 이는 각 테스트의 명확성을 유지하고, 추후 테스트를 검토하거나 실패 시 해당 기능의 문제를 더 쉽게 파악할 수 있게 해줍니다.
한편, 만약 두 기능이 밀접하게 연관되어 있는 경우, 예를 들어 주문 생성 로직에서 주문 상태와 TotalPrice가 서로에게 영향을 미친다면, 이를 하나의 테스트로 합치는 것이 유용할 수 있습니다. 그러나 이 경우에도 명확한 목적을 가지고 테스트를 구성해야 하며, 하나의 테스트 내에서 여러 케이스를 검증하려 할 때는 코드의 복잡성과 테스트의 명확성 사이에서 적절한 균형을 찾아야 합니다.
따라서 테스트를 합치는 것이 적절한지 여부는 테스트의 목적, 관련 기능의 구현 방식 및 서로간의 관계, 그리고 테스트의 유지 보수성 등 여러 요소를 고려하여 결정해야 합니다.
또한, 테스트에 대한 좀 더 자세한 가이드를 원하신다면 Spring Boot Reference Documentation에서 테스트 관련 유용한 정보를 찾아볼 수 있습니다:
- Spring Boot에서는 테스팅 유틸리티와 지원 클래스, 그리고 공통 테스트 의존성을 제공하는 전용 스타터를 포함하고 있습니다.
- 이 섹션에서는 테스팅에 대한 일반적인 질문에 답합니다.
private 상수 테스트 관련 질문
0
83
1
void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??
0
126
2
커버리지는 어떻게 활용하시는지 궁금합니다.
0
161
2
테스트 문서화 질문입니다
0
105
2
단위테스트 질문이 있습니다
0
96
2
컨트롤러는 모킹을 한 이유가 궁금합니다.
0
103
2
ERD 가장자리에 있는 도메인 테스트 질문
0
89
2
DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?
0
135
2
OrderCreateRequest DTO에 대해서 궁금한점
0
102
2
고전파의 테스트 대역 사용 대상, 공유 의존성
0
156
2
계층 관련 질문이 있습니다.
0
139
3
'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다
1
124
2
혹시 update 로직은 어떻게 테스트하나요? (@Setter?)
0
134
2
단위테스트와 통합테스트의 경계가 궁금합니다.
0
228
2
Service+Repository 통합테스트 관련 질문입니다.
0
150
2
OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요
0
184
2
test 용 .yml
0
90
2
throws Exception
0
80
2
카페키오스크 클래스 문의 ,,
0
89
2
Rest docs 문서용 테스트코드를 따로 작성해야 되나요?
0
174
2
테스트 코드에서 필요한 생성자
0
138
1
tearDown 순서
0
116
2
@Builder 생성자 private
0
136
2
@DisplayName gradle / intellJ
0
93
2





