public class OrderApp {
// 'OrderApp'라는 public 클래스를 선언합니다.
public static void main(String[] args) {
// 'main' 메서드를 선언합니다. 이 메서드는 애플리케이션의 진입점으로, String 배열을 매개변수로 받습니다.
MemberService memberService = new MemberServiceImpl();
// 'MemberService' 인터페이스의 구현체인 'MemberServiceImpl'을 인스턴스화하고, 'memberService'라는 변수에 할당합니다.
OrderService orderService = new OrderServiceImpl();
// 'OrderService' 인터페이스의 구현체인 'OrderServiceImpl'을 인스턴스화하고, 'orderService'라는 변수에 할당합니다.
Long memberId = 1L;
// Long 타입의 'memberId' 변수를 선언하고, 값 1L을 할당합니다. 이는 회원 식별자로 사용됩니다.
Member member = new Member(memberId, "member1", Grade.VIP);
// 'Member' 클래스의 인스턴스를 생성합니다. 이 인스턴스는 ID가 'memberId', 이름이 "member1", 등급이 'Grade.VIP'인 회원을 나타냅니다.
memberService.join(member);
// 'memberService'의 'join' 메서드를 호출하여, 'member' 객체를 회원으로 등록합니다.
Order order = orderService.createOrder(memberId, "item1", 10000);
// 'orderService'의 'createOrder' 메서드를 호출하여, 'memberId'로 식별되는 회원에 대한 주문을 생성합니다. 주문 항목 이름은 "item1"이고, 가격은 10000입니다.
System.out.println("order =" + order);
// 'System.out.println'을 사용하여 생성된 'order' 객체의 정보를 출력합니다. 'Order' 클래스의 'toString' 메서드에 의해 포맷된 문자열이 출력됩니다.
}
}
public class OrderServiceTest {
// 'OrderServiceTest'라는 public 클래스를 선언합니다. 이 클래스는 주문 서비스의 기능을 테스트합니다.
MemberService memberService = new MemberServiceImpl();
// 'MemberService' 인터페이스의 구현체인 'MemberServiceImpl'의 인스턴스를 생성하고, 이를 'memberService'라는 변수에 할당합니다. 이 인스턴스는 회원 관련 서비스를 제공합니다.
OrderService orderService = new OrderServiceImpl();
// 'OrderService' 인터페이스의 구현체인 'OrderServiceImpl'의 인스턴스를 생성하고, 이를 'orderService'라는 변수에 할당합니다. 이 인스턴스는 주문 관련 서비스를 제공합니다.
@Test
// '@Test' 어노테이션은 이 메서드가 JUnit에 의해 실행되는 테스트 메서드임을 나타냅니다.
void createOrder() {
// 'createOrder' 테스트 메서드를 선언합니다. 이 메서드는 주문 생성 기능을 테스트합니다.
Long memberId = 1L;
// Long 타입의 'memberId' 변수를 선언하고, 값 1L을 할당합니다. 이는 테스트에 사용될 회원의 ID입니다.
Member member = new Member(memberId, "member1", Grade.VIP);
// 'Member' 클래스의 인스턴스를 생성합니다. 이 인스턴스는 ID가 'memberId', 이름이 "member1", 등급이 'Grade.VIP'인 회원을 나타냅니다.
memberService.join(member);
// 'memberService'의 'join' 메서드를 호출하여, 위에서 생성한 'member' 객체를 회원으로 등록합니다.
Order order = orderService.createOrder(memberId, "item1", 10000);
// 'orderService'의 'createOrder' 메서드를 호출하여, 'memberId'로 식별되는 회원에 대한 주문을 생성합니다. 주문 항목 이름은 "item1"이고, 가격은 10000입니다.
Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000);
// 'Assertions' 라이브러리의 'assertThat' 메서드를 사용하여, 생성된 'order' 객체의 할인 금액을 검증합니다. 이 테스트는 할인 금액이 1000원인지 확인하여 주문 생성 로직의 정확성을 평가합니다.
}
}
'SPRING > Spring' 카테고리의 다른 글
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해2 - 객체 지향 원리 적용]새로운 할인 정책 적용과 문제점 (0) | 2024.05.06 |
---|---|
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해2 - 객체 지향 원리 적용]새로운 할인 정책 개발 (0) | 2024.05.06 |
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기]주문과 할인 도메인 개발 (0) | 2024.05.02 |
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기] 주문과 할인 도메인 설계 (0) | 2024.05.02 |
[스프링| 스프링 핵심 원리 | 기본편 | 스프링 핵심 원리 이해1 - 예제 만들기]회원 도메인 실행과 테스트 (0) | 2024.05.02 |