- 배달 주문 어플리케이션 만들기 프로젝트를 진행하면서 주문 관련 도메인을 맡아서 만들고 있었다.
- Response body가 좀 복잡했다. 대략 이 정도?
{
“orders” : [
{
“accountId“: 1,
“address”: “서울 은평구 진관동”,
“createdAt”: 2023.11.18 T00:00:00,
“menus”: [
{
“menuId”: 1,
“name“: “menu name”,
“quantity”: 1,
“price”: 10000,
“image”: “url”
},
{
“menuId”: 2,
“name“: “menu name”,
“quantity”: 2,
“price”: 15000,
“image”: “url”
}
],
“totalPrice”: 40000,
“status”: “출발전“
},
{
“accountId”: 2,
“address”:"서울 송파구 장지동"
“createdAt”: 2023.11.18 T00:01:00,
“menus”: [
~~~
],
“totalPrice”: 50000,
“status”: “출발전“
}
]
}
- 그래서 테스트코드를 만들어 보기로 했다. 테스트 코드에서 Slf4j를 쓸려면 dependency가 필요하다.
(이거 적어 놓으려고 쓰는 글임)
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
- 아직 단위테스트 구현은 복잡해서 Service의 메서드를 통으로 돌렸는데 디버깅과 조합하니 나름 오류가 잘 보였다.
@Test
@DisplayName("주문 확인")
void testGetOrders() {
// given
log.info("owner account 조회");
Account owner = accountRepository.findById(4L).orElse(null);
// when
assert owner != null;
log.info("move to service");
List<OrderListResponseDto> orderListResponseDtos = orderService.getOrders(owner);
// then
log.info("move to Test");
for (OrderListResponseDto dto : orderListResponseDtos) {
System.out.println("customer Id = " + dto.getAccountId());
}
System.out.println(orderListResponseDtos);
}