소개
게시글
질문&답변
2022.09.18
생성된 클래스들을 인식하지 못하고 있는것 같아서 질문 드립니다
import domain 관련 임포트가 아예 뜨지 않아요ㅜ
- 0
- 3
- 215
질문&답변
2022.09.18
생성된 클래스들을 인식하지 못하고 있는것 같아서 질문 드립니다
import 메세지들은 전부 관련없는 것들만 뜨더라고요ㅜㅜ써야하는 import를 제대로 사용하지 못하고 있는것 같습니다..동작은 잘 돌아가네요ㅜ
- 0
- 3
- 215
질문&답변
2022.09.17
주문취소에서 에러 발생 관련 질문드립니다
두번째 사진 에러가 나서 build gradle 하고 open as project 로 해서 열어서 제대로 실행이 되었는데 ...혹시 프로젝트로 실행을 안해서 났던 에러인가요...?
- 0
- 4
- 312
질문&답변
2022.09.17
주문취소에서 에러 발생 관련 질문드립니다
혹시 이것도 JUnit 과 관련된 오류인가요..?(사진)
- 0
- 4
- 312
질문&답변
2022.09.17
주문취소에서 에러 발생 관련 질문드립니다
package jpabook.jpashop.service; import jpabook.jpashop.domain.Address; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderStatus; import jpabook.jpashop.domain.item.Book; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.exception.NotEnoughStockException; import jpabook.jpashop.repository.OrderRepository; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.transaction.annotation.Transactional; import javax.persistence.EntityManager; import static org.junit.Assert.*; @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class OrderServiceTest { //상품 주문 테스트 @Autowired EntityManager em; //단순히 테스트를 넣는것을 목적으로함 @Autowired OrderService orderService; @Autowired OrderRepository orderRepository; @Test public void 상품주문() throws Exception{//상품 주문이 잘 되었는지 //given Member member =new Member(); member.setName("회원1"); member.setAddress(new Address("서울","강가","23-234")); em.persist(member); Book book = new Book(); book.setName("시골 JPA"); book.setPrice(10000); book.setStockQuantity(10); em.persist(book); //when 이제 주문 int orderCount= 2; Long orderId=orderService.order(member.getId(), book.getId(),orderCount); //then 검증하는 로직 Order getOrder=orderRepository.findOne(orderId); //첫번째는 메세지, expected는 기대하는 값 즉 주문 상태는 order여야 하고 //세번째는 실제값에 해당 assertEquals("상품 주문시 상태는 ORDER", OrderStatus.ORDER,getOrder.getStatus()); assertEquals("주문한 상품 종류 수가 정확해야 한다. ",1,getOrder.getOrderItems().size()); assertEquals("주문 가격은 가격 * 수량이다",10000*orderCount,getOrder.getTotalPrice()); assertEquals("주문 수량만큼 재고가 줄어야 한다. ",8,book.getStockQuantity()); } public void 주문취소() throws Exception{ //given Member member=new Member(); member.setName("회원1"); member.setAddress(new Address("서울","강가","23-234")); em.persist(member); Book book =new Book(); book.setName("시골 JPA"); book.setPrice(10000); book.setStockQuantity(10); em.persist(book); int orderCount =2; Long orderId= orderService.order(member.getId(), book.getId(),orderCount); //when 실제 테스트하는 것 orderService.cancelOrder(orderId);//아이디로 주문 취소 //then 검증 재고가 정상적으로 복구가 되었는지 Order getOrder=orderRepository.findOne(orderId); assertEquals("주문 취소시 상태는 CANCEL",OrderStatus.CANCEL,getOrder.getStatus()); assertEquals("주문이 취소된 상품은 그만큼 재고가 증가해야 한다. ",10,book.getStockQuantity()); //10개에서 2개를 주문했는데 주문을 취소했기 때문에 다시 10개가 됨 } @Test(expected = NotEnoughStockException.class) public void 상품주문_재고수량초과() throws Exception{ //given Member member=new Member(); member.setName("회원1"); member.setAddress(new Address("서울","강가","23-234")); em.persist(member); Book book =new Book(); book.setName("시골 JPA"); book.setPrice(10000); book.setStockQuantity(10); em.persist(book); int orderCount = 11;//재고보다 많으면 예외 발생 //when 실행되면 예외 발생 orderService.order(member.getId(),book.getId(),orderCount); //then fail("재고 수량 부족 예외가 발생해야 한다. "); } }
- 0
- 4
- 312