[워밍업 클럽 스터디 2기 백엔드(클린코드, 테스트코드)] 3주차 발자국

[워밍업 클럽 스터디 2기 백엔드(클린코드, 테스트코드)] 3주차 발자국

3주차 강의 : 단위 테스트, TDD | 테스트는 [ ] 다, Spring & JPA 기반 테스트

 

요약

1. 테스트 코드가 무엇이고, 왜 해야하는지

2. Spring MVC, JPA 기반 테스트는 어떻게 작성하는지

3. 테스트 코드 작성하는 것이 얼마나 중요한(귀찮은) 일인지

강의 내용

 

  1. 단위 테스트

  • 테스트 코드를 작성하지 않는 환경의 테스트 (수동 테스트)

  • 테스트 코드를 통한 테스트

  • 테스트 코드 작성 시 고민해야 할 부분

    • 테스트 케이스를 어떻게 나눌 것인가? (해피, 예외)

    • 테스트 하기 어려운 영역은 어떻게 분리할 것인가? 

     

    2 .TDD | 테스트는 [] 다.

  • TDD(Test-Driven-Development)란?

  • 테스트 코드를 작성 방법의 조언(DisplayName 작성, BDD 스타일)

  • 테스트는 경계값 테스트를 하는 것이 좋다.

 

  1. 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, 예외 케이스) 

 

 

 

댓글을 작성해보세요.

채널톡 아이콘