이번 회차에서는
저번 회차에서 만든 기능들을
일단 쌩으로 한 번 실행해보고, 그 다음에 테스트도 돌려본다.
2-5에서 했던 것과 동일하다.
그 전에 생각할 점이 하나 있다!
주문과 할인 도메인을 어떻게 설계했는지 떠올려보자
클라이언트가
서비스에게 요청을 보내면
서비스가 MemberRepository와 DiscountPolicy에게 할 일을 던져주어
할인 적용 결과를 알아내 클라이언트에게 리턴해주는 방식으로 설계하였다.
그럼 오늘 만드는 실행 코드와 테스트 코드는 이 설계에서 어떤 놈에 해당할까?
바로 클라이언트이다!
이렇게 개발 과정의 흐름을 계속 잘 따라가며 진행하자.
쌩으로 실행해보기
회원가입을 하고, 그 회원이 주문을 넣고, 주문에 할인을 적용한 결과를 받아오고, 그걸 화면에 출력해서 확인해보자.
일단 사용할 MemberService와 OrderService 객체들을 선언해주고, psvm으로 메인 메소드를 만들어준다.
메인 메소드의 내용은 이렇게 채워준다.
이제 돌려보자.
잘 출력되었고,
내용을 보니 값도 다 맞다.
member가 VIP이기 때문에 10000원이었던 상품에 1000원의 할인을 적용해 9000원이라는 할인 결과가 나왔다.
테스트 돌리기
이번엔 테스트 코드를 짜서 돌려본다.
test 폴더 안의 hello.core 패키지에 order 패키지를 만들고, 그 안에 OrderServiceTest 클래스를 만든다.
내용은 위와 같이 채워준다.
쌩 코드로 짰던 것과 동일하지만,
마지막에 출력문으로 결과를 확인하는 것이 아니라 AssertJ의 assertThat을 사용하여 할인금액이 1000과 동일한지 검증한다.
돌려본다.
잘 pass되어서 초록불이 들어왔다.
모든 테스트를 한 번에 돌려보자.
모두 잘 pass된다.
여기까지 하면 일단 개발이 한바탕 다 끝난 것이다.
다음 회차에서는
우리가 객체 지향적으로 충분히 잘 만들었는지를 확인할 것이다.
구체적으로는
할인 정책이 정률 할인 정책으로 바뀐 상황을 가정하여, DiscountPolicy의 구현체를 바꾸는 것을 시도해보고
충분히 편하게 잘 바꿀 수 있는지
우리 코드가 좋은 객체 지향 프로그래밍의 조건을 충족하는지 볼 것이다.
'스프링 공부 > 인프런 김영한 스프링 핵심 원리 - 기본편 노트정리' 카테고리의 다른 글
3-1. 새로운 할인 정책 개발 (2) | 2023.01.07 |
---|---|
2-7. 주문과 할인 도메인 개발 (0) | 2022.09.04 |
2-6. 주문과 할인 도메인 설계 (0) | 2022.09.03 |
2-5. 회원 도메인 실행과 테스트 (0) | 2022.09.01 |
2-4. 회원 도메인 개발 (0) | 2022.08.22 |