Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

주문 통합테스트 구현 #23

Merged
merged 9 commits into from
Aug 22, 2024
Merged

주문 통합테스트 구현 #23

merged 9 commits into from
Aug 22, 2024

Conversation

axhtl
Copy link
Contributor

@axhtl axhtl commented Aug 14, 2024

통합 테스트를 구현하였습니다.

OrderSeller

  • 판매자 주문 리스트 조회
  • 판매자 주문 승인
  • 판매자 주문 취소

OrderUser

  • 단일 주문 조회
  • 전체 주문 조회 offset 방식
  • 전체 주문 조회 slice 방식
  • 주문 생성
  • 주문상세 추가
  • 구매자 구매 확정
  • 구매자 주문 취소
  • 주문 삭제

@axhtl axhtl force-pushed the test/order-integration branch 2 times, most recently from fc5f18c to 75b966a Compare August 16, 2024 16:18
@axhtl axhtl force-pushed the test/order-integration branch from 49df33c to f79a989 Compare August 17, 2024 07:46
@axhtl axhtl changed the title Test/order integration 주문 통합테스트 구현 Aug 17, 2024
Copy link

@upswp upswp left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다! 수정한번 부탁드립니다!

Comment on lines +121 to +127
actions.andExpect(status().isOk())
.andExpect(jsonPath("$.message").value("주문이 정상적으로 취소되었습니다."))

// 데이터베이스에서 주문 상태 조회하여 검증
val savedOrder: Order? = orderRepository.findByIdOrNull(order.orderId)
assertNotNull(savedOrder)
assertEquals(Status.CANCELED, savedOrder.status)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

then 부분에는 기대하는 결과값에 대해서만 작성을 해두면 좋겠습니다!


// 데이터베이스에서 주문 상태 조회하여 검증
val savedOrder: Order? = orderRepository.findByIdOrNull(order.orderId)
assertNotNull(savedOrder)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

null 체크를 하는 부분보다 객체에서 확인하고싶은 부분을 보시는게 좋습니다!

Comment on lines +98 to +99
actions.andExpect(status().isOk())
.andExpect(jsonPath("$.message").value("주문이 정상적으로 출고처리되었습니다."))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

기대하는 부분은 아래로 내려주세요!

// 데이터베이스에서 주문 상태 조회하여 검증
val savedOrder: Order? = orderRepository.findByIdOrNull(order.orderId)
assertNotNull(savedOrder)
assertEquals(Status.PROCESSING, savedOrder.status)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

각 단계별로 확실하게 확인하고 싶은 부분을 작성하신 부분은 좋습니다!

Comment on lines +93 to +96
//then
actions
.andExpect(status().isOk)
.andExpect(jsonPath("$.orderId").value(orderId))
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

조회의 특성을 살려 어떤 값을 조회했는지 예상한 값이 조회되었는지도 같이 작성되면 좋겠습니다.

Comment on lines 99 to 133
@DisplayName("전체 주문 조회 offset 페이징 통합테스트")
@Test
fun testGetAllOrderOffsetPaging() {
//given
//필요한 데이터 생성(여러 주문 추가)
createOrders(110)

//when
val actions: ResultActions = mockMvc.perform(
MockMvcRequestBuilders.get(ORDER_URL + "/offset")
.contentType(MediaType.APPLICATION_JSON)
)

//then
actions.andExpect(status().isOk())
.andExpect(jsonPath("$.content.length()").value(10))
}

@DisplayName("전체 주문 조회 slice 페이징 통합테스트")
@Test
fun testGetAllOrderSlicePaging() {
//given
//필요한 데이터 생성(여러 주문 추가)
createOrders(110)

//when
val actions: ResultActions = mockMvc.perform(
MockMvcRequestBuilders.get(ORDER_URL + "/slice")
.contentType(MediaType.APPLICATION_JSON)
)

//then
actions.andExpect(status().isOk())
.andExpect(jsonPath("$.content.length()").value(10))
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

offset slice 부분이 나타나도록 코드를 다시 작성해보세요!

// 데이터베이스에서 주문 조회하여 삭제 여부 검증
val savedOrder: Order? = orderRepository.findByIdOrNull(order.orderId)
assertNotNull(savedOrder)
assertNotNull(savedOrder.deletedAt)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

시간값을 비교하는 부분이 추가되면 좋겠습니다!

- then 부분에는 기대하는 결과값에 대해서만 작성
- offset과 slice의 특징이 나타나도록 테스트 검증
(findAllByOrderByOrderIdDesc() 메서드 추가)
- 주문 삭제에서 시간값을 비교하는 부분 추가
@axhtl axhtl merged commit e29229a into develop Aug 22, 2024
1 check passed
@axhtl axhtl deleted the test/order-integration branch August 22, 2024 06:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants