2024.02.19
[테킷 백엔드] 프로젝트 - alcoholfriday
환경 - 스프링부트 3.2.1, 자바 JDK17
작업 - 장바구니에 상품 수량 변경 테스트
해결한 이유
전체 코드
@BeforeEach
@Transactional
void beforeEach() {
Item item = Item.builder()
.name("test ddaattaa")
.price(new BigDecimal(50000))
.info("이 상품은 테스트 상품입니다.")
.build();
Item savedItem = itemRepository.save(item);
itemId = savedItem.getId();
}
@Test
@DisplayName("장바구니 상품 수량 변경")
@WithAccount
void modifyCart() throws Exception {
// when
ResultActions resultActions = mvc
.perform(put("/v1/carts")
.contentType(MediaType.APPLICATION_JSON)
.characterEncoding("UTF-8")
.content("""
{
"itemId": "%d", // 동적으로 아이템의 ID를 사용
"quantity": "5"
}
""".formatted(itemId))
)
.andDo(print());
// then
resultActions
.andExpect(status().isOk())
.andExpect(handler().handlerType(CartController.class))
.andExpect(handler().methodName("modifyCart"))
.andExpect(jsonPath("$", instanceOf(LinkedHashMap.class)))
.andExpect(jsonPath("$.item.id", instanceOf(Number.class)))
.andExpect(jsonPath("$.quantity", notNullValue()));
}
참고
ChatGPT