Skip to content
This repository was archived by the owner on Jul 7, 2025. It is now read-only.

Latest commit

 

History

History
58 lines (47 loc) · 2.99 KB

File metadata and controls

58 lines (47 loc) · 2.99 KB

프로젝트 가이드라인

프로젝트 개요

Lettering-Backend는 모듈화된 아키텍처를 사용하는 Kotlin 기반 백엔드 프로젝트입니다. 이 프로젝트는 다음과 같은 모듈로 구성되어 있습니다:

  • Application-Module: 비즈니스 로직과 유스케이스를 포함합니다.
  • Bootstrap-Module: 애플리케이션의 진입점과 API 엔드포인트를 정의합니다.
  • Common-Module: 공통 유틸리티와 기능을 제공합니다.
  • Domain-Module: 도메인 엔티티와 비즈니스 규칙을 정의합니다.
  • Infrastructure-Module: 외부 시스템과의 통합을 담당합니다.
    • AWS: AWS 서비스 통합
    • Client: 외부 API 클라이언트
    • Event: 이벤트 처리
    • Persistence: 데이터 저장소 관련 코드
    • Security: 인증 및 권한 부여

테스트 가이드라인

기본 원칙

  1. 모킹을 기본으로 슬라이스 테스트를 진행한다.

    • 각 서비스나 컴포넌트는 독립적으로 테스트되어야 합니다.
    • 외부 의존성은 mockk를 사용하여 모킹해야 합니다.
    • 테스트는 특정 기능 단위(슬라이스)에 집중해야 합니다.
  2. kotest를 활용한 테스트 검증을 진행해야한다.

    • 모든 테스트는 kotest 프레임워크를 사용하여 작성해야 합니다.
    • BehaviorSpec 스타일(given/when/then)을 사용하여 테스트를 구조화합니다.
    • kotest의 assertion 라이브러리(shouldBe, shouldNotBeNull 등)를 사용하여 결과를 검증합니다.

테스트 작성 방법

  1. 테스트 클래스 구조

    • 테스트 클래스는 테스트 대상 클래스 이름에 'Test'를 붙여 명명합니다. (예: SocialLoginServiceTest)
    • BehaviorSpec을 상속받아 테스트를 구현합니다.
  2. 모킹 방법

    • mockk 라이브러리를 사용하여 의존성을 모킹합니다.
    • mockk<Interface>() 형태로 모의 객체를 생성합니다.
    • every { ... } returns ... 구문을 사용하여 모의 객체의 동작을 정의합니다.
    • 필요한 경우 verify { ... } 구문을 사용하여 모의 객체의 메서드 호출을 검증합니다.
  3. 테스트 시나리오 작성

    • given: 테스트 전제 조건을 설정합니다.
    • when: 테스트할 동작을 실행합니다.
    • then: 결과를 검증합니다.
    • 테스트 설명은 한글로 작성하여 가독성을 높입니다.
  4. 예외 테스트

    • shouldThrow<ExceptionType> { ... } 구문을 사용하여 예외 발생을 검증합니다.

테스트 실행

  • 개별 테스트는 독립적으로 실행 가능해야 합니다.
  • 테스트 간 의존성이 없어야 합니다.
  • 테스트는 빠르게 실행되어야 합니다.

코드 품질

  • 테스트 코드도 프로덕션 코드와 동일한 품질 기준을 적용합니다.
  • 테스트 코드는 명확하고 이해하기 쉽게 작성해야 합니다.
  • 중복 코드는 적절한 헬퍼 메서드나 픽스처를 사용하여 제거합니다.