Backend
Algorithm
Project
ETC
codesche’s blog
/
Education
/
Practical Testing: 실용적인 테스트 가이드
/
Practical Testing: 실용적인 테스트 가이드
Backend
Algorithm
Project
ETC
codesche’s blog
/
Education
/
Practical Testing: 실용적인 테스트 가이드
/
Practical Testing: 실용적인 테스트 가이드
Share
Backend
Algorithm
Project
ETC
Practical Testing: 실용적인 테스트 가이드
Practical Testing: 실용적인 테스트 가이드
Search
Layered Architecture → 관심사의 분리
통합 테스트
•
여러 모듈이 협력하는 기능을 통합적으로 검증하는 테스트
•
일반적으로 작은 범위의 단위 테스트만으로는 기능 전체의 신뢰성을 보장할 수 없다.
11. Spring & JPA 기반 테스트
테스트는
문서
다.
•
프로덕션 기능을 설명하는 테스트 코드 문서
•
다양한 테스트 케이스를 통해 프로덕션 코드를 이해하는 시각과 관점을 보완
•
어느 한 사람이 과거에 경험했던 고민의 결과물을 팀 차원으로 승격시켜서, 모두의 자산으로 공유할 수 있음
DisplayName을 섬세하게
10. 테스트는 [] 다.
Test Driven Development
프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현 과정을 주도하도록 하는 방법론
•
실패하는 테스트 작성
9. TDD: Test Driven Development + 키워드 정리
요구사항
•
가게 운영 시간(10:00~22:00) 외에는 주문을 생성할 수 없다.
테스트 하고자 하는 영역 분리
•
외부로 분리할수록 테스트 할 수 있는 코드는 많아진다.
8. 테스트하기 어려운 영역을 분리하기 + 키워드 정리
요구사항
•
키오스크 주문을 위한 상품 후보 리스트 조회하기
•
상품의 판매 상태 : 판매중, 판매보류, 판매중지
•
id, 상품 번호, 상품 타입, 판매 상태, 상품 이름, 가격
8. Persistence Layer 테스트(1)
요구사항
한 종류의 음료 여러 잔을 한 번에 담는 기능
테스트 케이스 세분화하기
•
질문하기: 암묵적이거나 아직 드러나지 않은 요구사항이 있는가?
•
세분화하기
7. 테스트 케이스 세분화하기
단위 테스트
•
작은
코드 단위를
독립적
으로 검증하는 테스트 (
코드 - 클래스 or 메서드
)
•
검증 속도가 빠르고, 안정적이다.
Junit 5
•
단위 테스트를 위한 테스트 프레임워크
•
https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
6. 단위 테스트 (Unit Test)
요구사항
•
주문 목록에 음료 추가/삭제 기능
•
주문 목록 전체 지우기
•
주문 목록 총 금액 계산하기
•
주문 생성하기
코드 작성
5. 수동테스트 vs 자동화된 테스트
초간단 카페 키오스크 시스템
•
주문 기능에 집중해서 구현
개발 환경
•
IntelliJ Ultimate
•
Vim (plugin)
4. 샘플 프로젝트 소개 & 개발 환경 안내
테스트하면 떠오르는 키워드
•
왜 굳이?
•
귀찮다.
•
시간이 오래 걸린다.
3. 테스트는 왜 필요할까
•
효과적인 학습을 하기 위해 가장 먼저 선행되어야 하는 것?
•
키워드 정리
2. 어떻게 학습하면 좋을까?
왜 테스트 코드 작성하는가?
•
주니어 개발자에게 가장 기대하는 요소 중 하나
•
채용 시 구현 과제 등에서 테스트 작성 여부, 테스트 코드 구현 방식을 확인
무엇을 학습하는가?
•
테스트 코드가 필요한 이유
•
좋은 테스트 코드란 무엇일까?
1. 강의 소개