[섹션 2. 스프링 핵심 원리 이해1 - 예제 만들기] 주문과 할인 도메인 실행과 테스트 / 인프런 김영한 스프링 핵심 원리 기본편
이번 시간에는 주문과 할인 도메인을 실행 및 테스트하는 시간을 가졌다.
주문이 정상 작동하는지 테스트를 위해, 메인 메소드를 생성해준다.
주문을 실행하기 위해서 MemberService와 OrderService를 호출해준다.
그리고 회원을 생성하기 위해서,
memberId는 1로 세팅해주고, 이름은 "memberA", vip 회원으로 생성해준다.
그리고 memberService를 통해서 생성한 회원을 메모리에 저장시켜준다.
마찬가지로, 주문 생성을 orderService를 통해서 id, itemName, itemPrice를 순서대로 입력해준다.
그리고 나서 println을 하게 되면 toString으로 출력이 될 것이다~~
메소드를 실행하고 난 결과 정상적으로 콘솔에 출력되는 것을 확인할 수 있다~~!
그리고 추가 테스트를 위해서 calculatePrice를 println을 통해서 찍어보면,
itemPrice(10,000)에서 discountPrice(1,000)가 빠진 금액인 9,000이 정상적으로 찍히는 것을 확인할 수 있다.
JUnit으로 테스트를 진행하기 위해, test의 하위폴더에 order 패키지를 생성하고,
OrderServiceTest 클래스를 생성해준다.
테스트 코드도 마찬가지로 memberService와 orderService를 호출해준다.
그리고 Test 어노테이션을 추가한 메소드를 작성해준다.
위의 전체 코드 중에서, 17번째 라인의 Long 을 살펴보면,
Primitive Type으로 하게 되면, 즉, long을 넣게 되면, null을 넣을 수 없게 된다.
null을 넣게 되면 첫번째 사진과 같이 오류가 발생한다.
Long으로 수정하게 되면 null도 입력이 가능하다!
객체 생성 단계에서 null이 들어갈 수도 있기 때문에 테스트는 Long으로 진행할 것이다.
아까 자바 테스트에서 한 것과 마찬가지로 member를 생성하고, memberService를 통해서 회원 저장.
그리고 오더 생성을 진행한다.
테스트를 하기 위해서, 위의 사진과 같이 해당 되는 Assertions를 임포트 해주고,
Assertions를 통해서 order의 discountPrice가 1000원인지 테스트하는 로직을 작성하였다~~!
테스트 결과, 정상적으로 통과하는 것을 확인할 수 있다!