Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

테스트 코드 작성 #440

Open
limehee opened this issue Aug 3, 2024 · 0 comments
Open

테스트 코드 작성 #440

limehee opened this issue Aug 3, 2024 · 0 comments
Assignees
Labels
✨ Feature 새로운 기능 명세 및 개발

Comments

@limehee
Copy link
Collaborator

limehee commented Aug 3, 2024

Describe

헥사고날 아키텍처로의 전환에 따라 시스템의 안정성을 확보하기 위해 테스트 코드를 작성합니다. 테스트 코드는 헥사고날 아키텍처의 구조를 반영하여 각 레이어별로 독립적으로 작성됩니다.

작업 항목

1. 테스트 환경 설정

  • Spring Boot Test, JUnit, Mockito 등의 테스트 프레임워크를 설정합니다.
  • 테스트 데이터베이스(H2, HSQLDB 등)를 설정하여 독립적인 테스트 환경을 구축합니다.
  • 의존성 주입 및 모킹(Mock) 설정을 위한 초기 구성 작업을 진행합니다.

2. 단위 테스트 작성

  • 도메인 객체 테스트

    • 비즈니스 로직을 포함한 도메인 객체의 메서드들을 테스트합니다.
    • 도메인 객체의 순수성을 유지하며, 다양한 시나리오를 검증합니다.
  • 유스케이스 테스트

    • 특정 유스케이스(사용자 시나리오)에 대한 테스트를 작성합니다.
    • 서비스 계층의 비즈니스 로직을 검증합니다.
  • 애플리케이션 서비스 테스트

    • 서비스 계층의 로직을 테스트합니다.

3. 통합 테스트 작성

  • API 엔드포인트 테스트

    • 컨트롤러를 통해 실제 HTTP 요청을 보내고 응답을 검증합니다.
  • DB 연동 테스트

    • 실제 데이터베이스와의 연동을 검증합니다.
    • JPA를 이용한 엔티티 저장 및 조회 테스트

4. 인수 테스트 작성

  • End-to-End 테스트
    • 실제 사용자 시나리오를 기반으로 시스템의 기능을 검증합니다.

5. 테스트 커버리지 확보

  • 경계값 테스트

    • 입력 값의 경계 조건을 테스트합니다.
  • 예외 상황 테스트

    • 예상치 못한 상황에서의 시스템 동작을 검증합니다.
    • 예: 데이터베이스 연결 실패, 잘못된 입력 값 등

작업 절차

1. 테스트 환경 설정

  • 테스트 환경 설정을 위한 초기 구성 작업을 진행합니다.
  • 필요한 프레임워크 및 라이브러리를 추가하고, 설정 파일을 작성합니다.

2. 단위 테스트 작성

  • 도메인 객체, 유스케이스, 애플리케이션 서비스 별로 단위 테스트를 작성합니다.
  • 테스트 커버리지를 최대한 확보하기 위해 다양한 테스트 케이스를 작성합니다.

3. 통합 테스트 작성

  • API 엔드포인트 및 DB 연동을 포함한 통합 테스트를 작성합니다.
  • 실제 환경과 유사한 테스트 환경을 구축하여 테스트를 진행합니다.

4. 인수 테스트 작성

  • 사용자 시나리오 기반의 End-to-End 테스트를 작성합니다.
  • 전체 시스템의 동작을 검증하기 위해 다양한 시나리오를 포함한 테스트를 작성합니다.

5. 테스트 커버리지 확보

  • 경계값 테스트와 예외 상황 테스트를 통해 다양한 시나리오를 검증합니다.
  • 테스트 커버리지 리포트를 생성하여 커버리지를 분석하고, 필요한 부분을 보완합니다.
@limehee limehee self-assigned this Aug 3, 2024
@limehee limehee added the ✨ Feature 새로운 기능 명세 및 개발 label Aug 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ Feature 새로운 기능 명세 및 개발
Projects
None yet
Development

No branches or pull requests

1 participant