[워밍업 클럽 스터디 2기 백엔드(클린코드, 테스트코드)] 3주차 발자국
3주차 강의 : 단위 테스트, TDD | 테스트는 [ ] 다, Spring & JPA 기반 테스트
요약
1. 테스트 코드가 무엇이고, 왜 해야하는지
2. Spring MVC, JPA 기반 테스트는 어떻게 작성하는지
3. 테스트 코드 작성하는 것이 얼마나 중요한(귀찮은) 일인지
강의 내용
단위 테스트
테스트 코드를 작성하지 않는 환경의 테스트 (수동 테스트)
테스트 코드를 통한 테스트
테스트 코드 작성 시 고민해야 할 부분
테스트 케이스를 어떻게 나눌 것인가? (해피, 예외)
테스트 하기 어려운 영역은 어떻게 분리할 것인가?
2 .TDD | 테스트는 [] 다.
TDD(Test-Driven-Development)란?
테스트 코드를 작성 방법의 조언(DisplayName 작성, BDD 스타일)
테스트는 경계값 테스트를 하는 것이 좋다.
Spring & JPA 기반 테스트
레이어드 아키텍쳐, JPA에 대해
Persistent-Layer Test
Repository 계층을 테스트한다.
쿼리 실행을 통해 기대한 결과를 반환하는 지 테스트
Business-Layer Test
Service 계층 테스트
서비스 계층을 위해서는, 통합 테스트가 필요할 수 있다.
SpringbootTest, DataJpa 테스트의 차이
테스트 계층에서의 @Transactional 사용 시 주의해야 할 사항
Stream()의 활용
Presentation-Layer Test
Mockito를 활용한 컨트롤러 서비스 코드 작성
프런트엔드의 응답, 예외 처리
Controller, Service 계층의 의존성 해결
미션 - Readable Code 에서 작성한 코드의 테스트 코드 작성해보기
이전 강의에서 리팩토링한 코드의 테스트 코드를 작성했다.
3가지 클래스의 7가지 테스트 케이스를 작성하는 것이 과제!
테스트 코드를 작성하는 것이 어려웠는데, 돌아보면
기존 코드(지뢰찾기, 스터디카페)에 대한 이해 부족
에서 기인그렇기에 이번 미션(테스트 코드를 작성)을 통해 좋았던 점은,
기존 코드의 이해
3주차 회고 - 테스트 코드에 대한 생각이 바뀌었다.
Java, Spring을 인프런을 통해 공부했기에, 테스트 코드가 중요하고, 좋다는 것은 알고 있었다.
강의 초반에 우빈님이 테스트 코드는
귀찮은 것
이라고 정의한 적이 있었던 것 같은데, 공감되었다.하나의 객체에서 추가 요건으로 메서드 추가 된다면, 즉시 테스트 코드를 추가해야 한다. (귀찮다.)
또한, 테스트 코드가 개발자에게 도움이 되려면,
꼼꼼하게, 잘
작성해야 한다. (@Transactional, 예외 케이스)
댓글을 작성해보세요.