워밍업 클럽 스터디 2기 3주차 발자국

워밍업 클럽 스터디 2기 3주차 발자국

  • 강의

  • 강의 수강

    • 섹션 2. 테스트는 왜 필요할까?

      • 테스트를 왜 작성해야하는지 작성하지 않았을 때와 비교해 필요성 체감

      • 테스트를 프로덕션 영역과 구분된, 부수적인 대상이 아닌 프로덕션 영역과 같이 유지보수 해야 하는 대상으로의 관점

    • 섹션 3. 단위 테스트

      • 단위 테스트를 왜 해야하는지, 어떤 식으로 해야하는지 학습

      • 단위 테스트 진행 시 static method와 같은, 테스트하기 어려운 부분을 분리해야 하는 이유 학습

    • 섹션 4. TDD: Test Driven Development

      • 프로덕션 코드보다 테스트 코드를 먼저 작성하여 테스트가 구현과정을 주도하도록 하는 방법론인 TDD 학습

      • Red - Green - Refactor 과정을 통해 객체가 아닌 메시지부터 테스트하는 방식 실습

        • 테스트하고자 하는 대상에 집중할 수 있으며, 해피 케이스 뿐만 아닌 에러 케이스도 고려할 수 있게 됨

    • 섹션 5. 테스트는 []다

      • 테스트는 빠른 피드백과 애플리케이션에 대한 신뢰뿐만 아니라, 문서의 역할도 할 수 있음을 학습

      • 문서의 역할을 하기 위해 @DisplayName, BDD 등 가독성을 위한 내용 학습

    • 섹션 6. Spring & JPA 기반 테스트 - Persistence Layer

      • Persistence Layer에서는 어떠한 부분을 고려하며 테스트를 진행해야 하는지 학습하고 실습

         

        • JPA라는 ORM을 사용하기 때문에 쿼리를 직접 작성하지 않으므로, 작성한 코드가 의도한 쿼리를 실행하는지 테스트

        • 테스트 코드에서 @Transactional을 활용할지 여부에 따라 @DataJpaTest / @SpringBootTest 중 어떤 것을 사용해야하는지 고려

  • 미션

    • Day12

      • Readable Code: 읽기 좋은 코드를 작성하는 사고법 studycafe를 대상으로 테스트 코드 작성

      • 어떤 대상을 테스트해야하는지 고려해 model 패키지 내에 위치한 클래스에 대해서만 코드 작성

        • Scanner를 static으로 사용하는 InputHandler는 테스트하기 어렵다고 판단

        • OutputHandler의 경우 데이터를 단순 출력하는 용도이므로 테스트를 할 필요가 없다고 판단

        • LockerPassFileReader, SeatPassFileReader의 경우 static으로 조회하려는 파일을 구체적으로 알고 있기 때문에 테스트 시 프로덕션 영역(resource)에 영향을 끼치기도 하고, 테스트하기 어렵다고 판단

        • 통합 테스트를 진행해야 하는 StudyCafePassMachine의 경우 InputHandler의 테스트 어려움과 OutputHandler를 통해 검증해야 한다는 점으로 인해 테스트하기 어렵다고 판단

  • 회고

    • 테스트가 왜 필요한지 다른 사람에게 설득할 수 있을 정도로 학습할 수 있었다

    • 미션을 진행하며 아직 테스트를 작성한 경험과 노하우가 부족함을 느꼈다

    • 테스트를 할 때 나만의 기준과 그에 대한 근거가 필요함을 느꼈다

 

댓글을 작성해보세요.

채널톡 아이콘