본문 바로가기
스프링/핵심 원리

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

by drCode 2022. 1. 20.
728x90
반응형

기존에 만든 주문과 할인 도메인 개발 

https://drcode-devblog.tistory.com/316

 

[Spring] 주문과 할인 도메인 개발

먼저 할인(discount)와 주문(order)의 패키지 생성을 해야한다. discount Interface : DiscountPolicy Class : FixDiscountPolitcy order Interface : OrderService Class : Order, OrderServiceImpl 먼저 Discou..

drcode-devblog.tistory.com

에서 했던 개발 내용을 테스트를 할 것이다.

 

먼저 

 


그림과 같이, OrderApp 과 OrderServiceTest를 만들어서 헤볼 것이다.

 

OrderApp.java

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.Order;
import hello.core.order.OrderService;
import hello.core.order.OrderServiceImpl;

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());
    }
}

 

 

실행하면 다음과 같은 결과가 나온다.

 

Test코드를 만들면

 

OrderServiceTest.java

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 OrderServiceTest {
    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);
    }

}

 

Assertions.assertThat 을 사용하면 굳이 출력을 하지 않더라도,

테스트를 통과하면 같은 객체인 것을 확인할 수 있다.

 

728x90
반응형

댓글