인프런 워밍업 클럽 3주차 발자국

3주차 강의 정리

  • 테스트의 필요성 -> 커버할 수 없는 영역 발생 방지, 감보다 코드에 의존

  • 잘못 작성된 테스트 코드 -> 새로운 짐

  • 올바른 테스트 코드

  • 수동 테스트 -> 콘솔 출력 및 개발자에 의한 판단

  • 자동 테스트 -> 안정성 및 유지보수성 증가

  • 단위 테스트 -> 클래스 및 메소드 단위, JUnit5, AssertJ

  • 해피 케이스와 예외 케이스 -> 경계값 테스트

  • 테스트하기 어려운 영역을 분리하여 production code와 test code를 교체할 수 있도록 테스트 설계

  • TDD -> 프로덕션 코드보다 테스트 코드를 먼저 작성, Red-Green-Refactor

  • TDD로 엣지 케이스 발견 가능성을 높이고 복잡도가 낮은 코드 구현 가능

  • 테스트 코드가 기능의 보조 수단이 아닌 동등한 관점에서 협력하는 관계가 될 수 있다.

  • 기능을 설명하는 문서 -> 기능 이해 도움 & 고민의 결과물

  • @DisplayName

  • BDD -> given-when-then

  • 통합 테스트

  • Library vs Framework -> 내 코드의 관점

  • @SpringBootTest vs @DataJpaTest

  • assertThat().extracting().contains()

  • Persistence Layer -> Data Access의 역할

  • Business Layer -> 비즈니스 로직 구현 역할

  • @Transactional vs tearDown()

     


3주차 강의 회고

좋았던 점

  • 테스트에 대한 필요성에 대해 더 잘 알게 되었다.

  • TDD를 실제로 적용해볼 수 있었다.

  • Spring & JPA에 테스트를 적용할 수 있었다.

     

아쉬웠던 점

  • 테스트 지점을 아는 것이 어려웠다

     

배운 점

  • 테스트 도구 사용법

  • 단위 테스트와 통합 테스트 적용 방법

앞으로 바라는 점

  • 테스트 커버리지 도구와 CI에 테스트 적용하는 법 공부


미션

Day12

  • 고민했던 점

    • IO 담당하는 부분 테스트를 어떻게 해야하는지

      • 파일 입력을 테스트 상에서 구현하는 방법?

         


@MappedSuperclass

  • JPA에서 엔티티의 공통 속성을 정의하기위해 사용.

  • 부모 클래스에 정의된 모든 속성은 자식 클래스의 테이블에 포함

@EntityListeners

image

Collectors.groupingBy()

image

Builder와 private 생성자

image

댓글을 작성해보세요.

채널톡 아이콘