Practical Testing: 실용적인 테스트 가이드
Search


11. Spring & JPA 기반 테스트
테스트는 문서다.
•
프로덕션 기능을 설명하는 테스트 코드 문서
•
다양한 테스트 케이스를 통해 프로덕션 코드를 이해하는 시각과 관점을 보완
•
어느 한 사람이 과거에 경험했던 고민의 결과물을 팀 차원으로 승격시켜서, 모두의 자산으로 공유할 수 있음
DisplayName을 섬세하게
@DisplayName("음료 1개 추가 테스트")
@Test
public void add() {
CafeKiosk cafeKiosk = new CafeKiosk();
cafeKiosk.add(new Americano());
assertThat(cafeKiosk.getBeverages()).hasSize(1);
assertThat(cafeKiosk.getBeverages().get(0).getName()).isEqualTo("아메리카노");
}
// 처음 보는 입장에서는 자세하게 적어줘야 이해가 잘 됨
@DisplayName("음료 1개를 추가하면 주문 목록에 담긴다.")
@Test
public void add() {
CafeKiosk cafeKiosk = new CafeKiosk();
cafeKiosk.add(new Americano());
assertThat(cafeKiosk.getBeverages()).hasSize(1);
assertThat(cafeKiosk.getBeverages().get(0).getName()).isEqualTo("아메리카노");
}

10. 테스트는 [] 다.


9. TDD: Test Driven Development + 키워드 정리


8. 테스트하기 어려운 영역을 분리하기 + 키워드 정리
요구사항
•
키오스크 주문을 위한 상품 후보 리스트 조회하기
•
상품의 판매 상태 : 판매중, 판매보류, 판매중지
•
id, 상품 번호, 상품 타입, 판매 상태, 상품 이름, 가격
8. Persistence Layer 테스트(1)


7. 테스트 케이스 세분화하기
단위 테스트
•
작은 코드 단위를 독립적으로 검증하는 테스트
(코드 - 클래스 or 메서드)
•
검증 속도가 빠르고, 안정적이다.
Junit 5
•
단위 테스트를 위한 테스트 프레임워크
•
https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
AssertJ

6. 단위 테스트 (Unit Test)
요구사항
•
주문 목록에 음료 추가/삭제 기능
•
주문 목록 전체 지우기
•
주문 목록 총 금액 계산하기
•
주문 생성하기
코드 작성
•
Beverage

5. 수동테스트 vs 자동화된 테스트
초간단 카페 키오스크 시스템
•
주문 기능에 집중해서 구현
개발 환경
•
IntelliJ Ultimate
•
Vim (plugin)

4. 샘플 프로젝트 소개 & 개발 환경 안내
테스트하면 떠오르는 키워드
•
왜 굳이?
•
귀찮다.
•
시간이 오래 걸린다.

3. 테스트는 왜 필요할까
•
효과적인 학습을 하기 위해 가장 먼저 선행되어야 하는 것?
•
키워드 정리

2. 어떻게 학습하면 좋을까?
왜 테스트 코드 작성하는가?
•
주니어 개발자에게 가장 기대하는 요소 중 하나
•
채용 시 구현 과제 등에서 테스트 작성 여부, 테스트 코드 구현 방식을 확인
무엇을 학습하는가?
•
테스트 코드가 필요한 이유
•
좋은 테스트 코드란 무엇일까?
•
실제 실무에서 진행하는 방식 그대로 테스트를 작성해가면서 API를 설계하고 개발하는 방법

1. 강의 소개




