Spring/스프링 핵심 원리 - 기본편

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

DEV-HJ 2023. 3. 12. 18:42
반응형

주문과 할인 정책 실행

- 할인 금액이 잘 출력되는 것을 확인할 수 있다.
- 애플리케이션 로직으로 이렇게 테스트 하는 것은 좋은 방법이 아니다. JUnit 테스트를 사용하자

package hello.core;

import hello.core.member.Grade;
import hello.core.member.Member;
import hello.core.member.MemberService;
import hello.core.member.MemberServiceImpl;
import hello.core.order.OrderService;
import hello.core.order.OrderServiceImpl;
import hello.core.order.order;

public class OrderApp {

    public static void main(String[] args){
        MemberService memberService = new MemberServiceImpl();
        OrderService orderService = new OrderServiceImpl();

        long memberId = 1L;
        Member member = new Member(memberId, "memberA", Grade.VIP);
        memberService.join(member);

        order order =orderService.createOrder(memberId, "itemA", 10000);
        System.out.println("order = "+order);
        System.out.println("order.calculatePrice = "+order.calculatePrice());
    }


}

결과확인 화면

 


주문과 할인 정책 테스트

package hello.core.order;

import hello.core.member.Grade;
import hello.core.member.Member;
import hello.core.member.MemberService;
import hello.core.member.MemberServiceImpl;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;

public class OrderSeriveTest {

    MemberService memberService = new MemberServiceImpl();
    OrderService orderService = new OrderServiceImpl();

    @Test
    void createOrder(){
        long memberId = 1l;
        Member member = new Member(memberId, "memberA", Grade.VIP);
        memberService.join(member);

        order order = orderService.createOrder(memberId, "itemA", 10000);
        Assertions.assertThat(order.getDiscountPrice()).isEqualTo(1000);
    }
}

결과확인 화면 - 테스트 성공

반응형