[Spring] 02-5. 주문과 할인 도메인 실행 및 테스트

지찬우·2022년 12월 22일
0

Spring

목록 보기
9/27
post-thumbnail

이 시리즈는 인프런 강의(김영한 님의 ‘스프링 핵심 원리 - 기본편’)로 공부하며 혼자 기록하고, 사람들과도 공유할 수 있도록 작성하는 글이다. 최대한 추가적인 정보는 공식 홈페이지, 문서를 보며 얻을 예정이다.
(개인적인 생각과 이해가 들어가 있기 때문에 저의 ‘무식함’이 있을 수 있습니다😜 혹시라도 이 글을 보게 되시는 분이 계시다면 잘못된 부분 댓글로 많이 알려주시면 너무 감사하겠습니다!!)

GitHub Repository : https://github.com/jcw1031/spring-core-study


주문과 할인 도메인 실행과 테스트

회원 도메인을 개발하고 테스트했던 방식처럼 진행해 보자. 먼저 main()에서 출력해서 확인해 보자.

🧪 main()을 사용한 테스트

src/main/java/Group이름.core 패키지에 OrderApp을 생성한다.


main 메서드를 만들고, 가입을 하고 주문을 생성하려면 회원 서비스와 주문 서비스가 필요하다. MemberService와 OrderService 인터페이스 인스턴스가 구현체 객체를 참조하도록 한다.


회원을 생성하여 회원 서비스를 통해 가입을 한다.


그리고 주문 서비스의 createOrder()를 사용하여 주문을 생성한다. Order 객체로 반환받는다.


이 Order 객체를 출력해 보도록 하자.

Order 엔티티에 toString()을 오버라이딩 했던 이유가 바로 이 때문이다.


우리가 설정한 대로 주문이 잘 생성된 것을 확인할 수 있다.


Order 엔티티의 calculatePrice()를 사용하여 할인되었을 때의 금액도 출력해 보자.


아주 잘 나온다.


역시 main을 사용하여 테스트하는 것은 스마트하지 않다. JUnit 테스트 프레임워크를 사용해 보자.

🧪 JUnit을 사용한 테스트 📌

src/test/java/Group이름.core 패키지 내에 order 패키지를 추가한다.


그 order 패키지에 OrderServiceTest를 생성한다.


main에서와 마찬가지로 회원 서비스와 주문 서비스를 사용한다.


Test 어노테이션을 사용하여 테스트 함수를 만든다.


회원을 생성하여 가입을 하고


주문 서비스의 createOrder()를 사용해 주문을 생성하는 것까지 동일하다. 그 후에 회원 도메인 테스트 때 사용했던 Assertions를 사용한다.

junit.jupiter.api가 아닌 assertj.core.api이므로 주의한다❗️


테스트를 실행해 보면 초록불이 들어오며 테스트에 성공한다.


전체 테스트를 돌려보자. src/test/java 경로의 Group이름.core 패키지를 선택하고 우클릭하여 해당 패키지에 있는 테스트를 모두 실행할 수 있다.


짜잔~ 보기 좋은 초록불이 들어왔다😊


지금까지 회원 도메인과 주문 및 할인 정책 도메인을 설계하고 개발하고 테스트까지 해보았다. 다음 시간에는 정률 할인 정책을 개발하여 변경을 해보도록 하자.

profile
좋은 개발자가 되자.

0개의 댓글