반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 카카오 면접
- kubernetes
- 스프링 핵심원리
- 엘라스틱서치
- 코딩테스트
- 스프링핵심원리
- 알고리즘
- 이펙티브 자바
- 스프링부트
- Spring
- 이펙티브자바
- 자바
- 오블완
- 자바스크립트
- 티스토리챌린지
- 클린아키텍처
- Sort
- JavaScript
- 알고리즘정렬
- java
- Effective Java
- 김영한
- 이차전지관련주
- effectivejava
- 스프링
- ElasticSearch
- Effective Java 3
- 카카오
- 예제로 배우는 스프링 입문
- k8s
Archives
- Today
- Total
Kim-Baek 개발자 이야기
[스프링 핵심원리] 13. 주문과 할인 도메인 실행과 테스트 본문
김영한님의 [스프링 핵심 원리] 강의를 정리하고, 내가 생각한 내용까지 정리하는 포스팅
주문과 할인 도메인을 만들었으니 이제 제대로 동작하는지 테스트를 해볼 차례이다.
package core.order;
import core.order.member.*;
import core.order.member.MemberService;
import core.order.member.MemberServiceImpl;
import core.order.order.Order;
import core.order.order.OrderService;
import core.order.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);
}
}
메인 메소드를 위와 같이 하나 새로 만들고 돌려보도록 하자
이렇게 결과가 나오는데 정상적으로 출력되는 것을 볼 수 있다. 메인 메소드를 통해서 테스트 하는 것은 역시나 마찬가지로 좋은 방법이라고 할 수는 없다.
package core.order.order;
import core.order.member.*;
import core.order.member.MemberService;
import core.order.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 패키지에 주문 서비스 테스트 클래스를 하나 만들도록 하자. 메인메소드에서 했던 로직과 거의 동일하지만 junit을 통해서 검증을 한다는 것이 다르다.
이렇게 되면 값이 변경이 되면 테스트에서 실패하기 때문에 훨씬 정확하게 테스트를 할 수 있다.
실행시켜 보면 41ms 로 정말 빠르게 테스트가 성공하는 것을 알 수 있다. 스프링부트 테스트가 아니라서 자바만 사용하기 때문에 빠르다. 나중에 스프링부트 테스트를 사용하게 되면 다양한 의존성들을 가져오느라 더 느릴 수 있다.
소스 코드 : https://github.com/bgc8214/spring-core/tree/step4
반응형
'개발 > Spring' 카테고리의 다른 글
[스프링 핵심원리] 15. 새로운 할인 정책 적용과 문제점 (0) | 2021.10.05 |
---|---|
[스프링 핵심원리] 14. 새로운 할인 정책 개발 (0) | 2021.10.04 |
[스프링 핵심원리] 12. 주문과 할인 도메인 개발 (0) | 2021.10.01 |
[스프링 핵심원리] 11. 주문과 할인 도메인 설계 (0) | 2021.10.01 |
[스프링 핵심원리] 10. 회원 도메인 실행과 테스트 (0) | 2021.09.29 |
Comments