2024.02.12
[테킷 백엔드] 프로젝트 - alcoholfriday
환경 - 스프링부트 3.2.1, 자바 JDK17
작업 - 장바구니에 상품 저장 테스트
한글 해석
org.mockito.Exceptions.misusing.UnnecessaryStubbingException:
불필요한 스터빙이 감지되었습니다.
깨끗하고 유지 관리 가능한 테스트 코드에는 불필요한 코드가 필요하지 않습니다.
다음 스텁은 필요하지 않습니다(관련 코드 줄로 이동하려면 클릭하세요).
1. -> com.drunkenlion.alcoholfriday.domain.cart.application.CartServiceTest.addCartListTest(CartServiceTest.java:174)에서
불필요한 스터빙을 제거하거나 '관대한' 엄격함을 사용하세요. 추가 정보: UnnecessaryStubbingException 클래스에 대한 javadoc.
@Test
@DisplayName("장바구니에 한 개 이상 상품 담았을 경우")
void addCartList() {
// given
List<AddCartRequest> cartDetails = new ArrayList<>();
AddCartRequest cartRequest1 = AddCartRequest.builder()
.itemId(itemId1)
.quantity(quantityCart)
.build();
AddCartRequest cartRequest2 = AddCartRequest.builder()
.itemId(itemId2)
.quantity(quantityCart2)
.build();
cartDetails.add(cartRequest1);
cartDetails.add(cartRequest2);
when(this.itemRepository.findById(cartRequest1.getItemId())).thenReturn(this.getOneItem());
when(this.itemRepository.findById(cartRequest2.getItemId())).thenReturn(this.getOneItem2());
CartDetail cartDetail1 = CartDetail.builder()
.cart(cart)
.item(item)
.quantity(cartRequest1.getQuantity())
.build();
CartDetail cartDetail2 = CartDetail.builder()
.cart(cart)
.item(item)
.quantity(cartRequest2.getQuantity())
.build();
when(this.cartDetailRepository.save(any(CartDetail.class))).thenReturn(cartDetail1);
when(this.cartDetailRepository.save(any(CartDetail.class))).thenReturn(cartDetail2);
// when
List<CartDetailResponse> cartDetailResponses = this.cartService.addCartList(cartDetails, member);
// then
assertThat(cartDetailResponses.get(0).getItem().getName()).isEqualTo(itemName);
assertThat(cartDetailResponses.get(0).getQuantity()).isEqualTo(cartRequest1.getQuantity());
assertThat(cartDetailResponses.get(1).getItem().getName()).isEqualTo(itemName2);
assertThat(cartDetailResponses.get(1).getQuantity()).isEqualTo(cartRequest2.getQuantity());
}