이번 시간에는 잘 작성되었는지 테스트 하는 과정을 정리하였다!
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.calcuatePrice = " + order.calculatePrice());
}
}
먼저 멤버서비스와 주문서비스를 생성하고
멤버객체를 생성할때 1L, memberA , VIP
값을 넘겨서 서비스의 회원가입로직을 실행하고
주문객체를 생설할때 createOrder 메서드를 이용하여 아이디, 상품명, 상품각격을 넘겨 주문을 생성한다.
그리고 order객체 자체를 출력하면 toString()메서드가 실행된다.
할인된 가격을 보기위해서 Order의 calculatePrice메서드를 실행하고 확인해보았다.
정상적으로 짜여져있는걸 확인할 수 있었다.
눈으로 직접확인하는 출력문 테스트는 이제 의미가없다
Junit을 이용해보자!
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);
}
}
<test 디렉터리 하위>
전반적인 코드는 동일하지만
assertj 라이브러리를 이용한
assertThat()메서드를 이용하여 값을 확인한다.
'웹프로그래밍 > Spring 핵심 원리' 카테고리의 다른 글
10. 새로운 할인 정책 적용과 문제점 (0) | 2021.07.13 |
---|---|
9. 새로운 할인 정책 개발 (0) | 2021.07.08 |
7. 주문과 할인 도메인 개발 (0) | 2021.07.08 |
6. 주문과 할인 도메인 설계 (0) | 2021.07.08 |
5. 회원 도메인 실행과 테스트 (0) | 2021.07.06 |