Skip to content

[Feat] 모든 비즈니스 로직에 BDD 기반 테스트 구축#474

Open
PeraSite wants to merge 21 commits intodevelopfrom
feat/all-logic-test
Open

[Feat] 모든 비즈니스 로직에 BDD 기반 테스트 구축#474
PeraSite wants to merge 21 commits intodevelopfrom
feat/all-logic-test

Conversation

@PeraSite
Copy link
Member

@PeraSite PeraSite commented Feb 14, 2026

Summary

  • 이번 PR은 Activity/XML 기반 화면을 Compose로 완전 이관하기 위한 1단계입니다.
  • 화면 전환 전에 로직부터 안전하게 검증하기 위해, JVM BDD 테스트 기반을 먼저 구축했습니다.
  • 목적: UI 구현 방식이 바뀌어도 domain/data/presentation 로직 회귀를 빠르게 잡을 수 있는 최소 안전망 확보
  • 추가 후속 수정:
    • 고정 메뉴 리뷰 작성 시 likeMenuIdList가 빈 리스트면 예외가 발생하던 문제를 수정했습니다.
    • 닉네임 변경 실패 시 로컬 닉네임이 먼저 바뀌어 서버/로컬이 불일치하던 문제를 수정했습니다.
  • CI 게이트 추가:
    • .github/workflows/debug.yml에서 ./gradlew :app:testDebugUnitTest :core:common:testDebugUnitTest필수 단계로 추가했습니다.
    • 해당 테스트가 실패하면 debug workflow가 실패하고 이후 APK 빌드/배포 단계가 진행되지 않습니다.
  • 테스트 완료:
    • ./gradlew :app:testDebugUnitTest :core:common:testDebugUnitTest

Describe your changes

As-is To-be
화면(XML/Activity) 중심으로 기능이 동작하고, 로직 회귀를 체계적으로 보장하는 테스트 기반이 약함 Compose 완전 이관 전 단계로 JVM 로직 테스트를 먼저 강화해 안전한 전환 기반 확보
시간 의존 로직에서 System.currentTimeMillis()/now() 직접 호출로 테스트 재현성 낮음 Clock 주입으로 시간 제어 가능, flaky 테스트 감소 및 시나리오 검증 안정화
JUnit4 중심 단위 테스트로 분기 시나리오 표현력이 제한적 Kotest BehaviorSpec (given-when-then) 기반으로 분기/행동 중심 테스트 구조 통일
고정 메뉴 리뷰 작성에서 likeMenuIdList = emptyList() 입력 시 NoSuchElementException 발생 빈 리스트를 menuLike = null로 안전하게 매핑해 정상 처리
닉네임 변경 API 실패 시에도 로컬 닉네임이 먼저 변경되어 서버/로컬 상태 불일치 발생 원격 닉네임 변경 성공 시에만 로컬 닉네임 저장
debug workflow에서 테스트 통과가 강제되지 않음 debug workflow에서 JVM 테스트 통과를 필수 게이트로 강제

변경 상세

  • 테스트 인프라

    • app, core/commonuseJUnitPlatform() 설정
    • Kotest + MockK + Coroutines Test + Turbine 도입
    • 공통 테스트 베이스/유틸 추가 (AppBehaviorSpec, MainDispatcherListener, fixtures/helpers)
    • data/domain/presentation/common 전반 BDD 테스트 대량 보강 (신규 테스트 파일 64개)
  • src/main 변경

    • AppModule: Clock provider 추가
    • AlarmUseCase: 시스템 시간 직접 참조 제거, Clock 기반으로 알람 시점 계산
    • CalendarUtil: getNextDayDate()Clock 주입 가능하도록 변경
    • WidgetCacheManager, WidgetDataDisplayManager: 시간 계산/캐시 검증 로직에 Clock 파라미터 반영
    • ReviewRepositoryImpl.writeMenuReview: likeMenuIdList.first() 제거, firstOrNull()로 빈 리스트 안전 처리
    • SetUserNicknameUseCase: 원격 변경 성공 시에만 AccountDataStore.setName() 수행
  • 테스트 보강/수정

    • ReviewRepositoryImplBehaviorSpec: 빈 likeMenuIdList 케이스를 예외 기대에서 정상 처리 검증으로 변경
    • UserDelegatingUseCasesBehaviorSpec: 닉네임 변경 성공/실패 시 로컬 저장 호출 정책(성공시에만 저장) 검증
  • CI/Workflow 변경

    • .github/workflows/debug.yml
      • Run unit tests (required) 단계 추가
      • 실행 명령: ./gradlew :app:testDebugUnitTest :core:common:testDebugUnitTest
      • 테스트 실패 시 workflow 실패로 처리되어 이후 단계 차단
  • 추가 라이브러리

    • io.kotest:kotest-runner-junit5
    • io.kotest:kotest-assertions-core
    • io.kotest:kotest-property
    • io.mockk:mockk
    • org.jetbrains.kotlinx:kotlinx-coroutines-test
    • app.cash.turbine:turbine

kotlinx.datetime 사용하지 않은 이유

  • 이번 PR의 1차 목표는 Compose 이관 전 로직 검증 안정화이며, 핵심은 시간 소스 제어(Clock)였습니다.
  • 현재 코드베이스가 이미 java.time을 광범위하게 사용 중이고, 앱 minSdk=28 환경에서 추가 의존 없이 충분히 동작합니다.
  • kotlinx.datetime 전환은 타입/변환/호출부 마이그레이션 범위가 커서, 이번 단계의 목적(테스트 안전망 구축) 대비 변경 리스크가 커 후속 단계로 분리했습니다.

Issue

To reviewers

  • Clock 주입 이후 알림 예약/위젯 시간 판별/캐시 만료 로직이 기존 동작과 동일한지 확인 부탁드립니다.
  • BDD 테스트가 핵심 분기(성공/실패/엣지 케이스)를 충분히 커버하는지 봐주시면 좋겠습니다.
  • 고정 메뉴 리뷰 작성 시 빈 likeMenuIdListmenuLike = null로 처리한 정책이 API 계약과 맞는지 확인 부탁드립니다.
  • 닉네임 변경 실패 시 로컬 미반영(원격 성공 후 로컬 저장) 정책이 현재 UX 기대와 맞는지 확인 부탁드립니다.
  • debug.yml 테스트 필수 게이트가 의도대로 동작하는지(실패 시 이후 단계 차단) 확인 부탁드립니다.
  • 이번 PR은 테스트 기반 + 시간 의존 안정화가 중심이며, 본격적인 UI Compose 전환은 다음 단계에서 진행합니다.

Compose Migration Next Steps

  • 1) JVM 로직 테스트 구축 및 CI 필수화
  • 2) 스크린샷 테스트 구축 및 CI 필수화
  • 3) 이관 공통 기반 도입 및 화면별 토글 적용
  • 4) 저위험 화면(Developer, SignOut, Dialog, Login) Compose 전환
  • 5) UserInfo, MyPage Compose 전환 및 레거시 제거
  • 6) Menu, InfoBottomSheet Compose 전환 및 레거시 제거
  • 7) Cafeteria 화면 Compose 전환
  • 8) Main 네비, Intro, WebView Compose 전환 및 최종 정리

@PeraSite PeraSite requested review from HI-JIN2 and Copilot and removed request for Copilot February 14, 2026 18:07
@PeraSite PeraSite self-assigned this Feb 14, 2026
@PeraSite PeraSite changed the title Feat/all logic test feat: 모든 비즈니스 로직에 BDD 기반 테스트 구축 Feb 14, 2026
@PeraSite PeraSite changed the title feat: 모든 비즈니스 로직에 BDD 기반 테스트 구축 [Feat] 모든 비즈니스 로직에 BDD 기반 테스트 구축 Feb 14, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @PeraSite, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 PR은 기존 Activity/XML 기반의 Android 애플리케이션을 Jetpack Compose로 전환하기 위한 중요한 첫 단계입니다. UI 구현 방식이 변경되더라도 도메인, 데이터, 프레젠테이션 로직의 회귀를 빠르게 감지할 수 있는 안전망을 확보하는 데 중점을 두었습니다. 이를 위해 JVM BDD 테스트 프레임워크를 구축하고, 시간 의존적인 로직을 Clock 주입을 통해 중앙 집중화하여 테스트의 재현성과 안정성을 크게 향상시켰습니다. 전반적인 테스트 인프라를 현대화하고 광범위한 BDD 테스트를 추가하여 코드베이스의 견고함을 높이는 데 기여합니다.

Highlights

  • Compose 이관 1단계: Activity/XML 기반 화면을 Compose로 완전 이관하기 위한 첫 단계로, 로직 검증을 위한 JVM BDD 테스트 기반을 구축했습니다.
  • 테스트 재현성 개선: 시간 의존적인 로직에서 System.currentTimeMillis()/now() 직접 호출을 제거하고 Clock 주입 방식으로 변경하여 테스트 재현성을 높였습니다.
  • 테스트 구조 통일: JUnit4 중심의 단위 테스트에서 Kotest BehaviorSpec (given-when-then) 기반으로 분기/행동 중심 테스트 구조를 통일했습니다.
  • 새로운 테스트 라이브러리 도입: Kotest, MockK, Coroutines Test, Turbine 등 최신 테스트 라이브러리를 도입하여 테스트 환경을 강화했습니다.
  • 공통 테스트 유틸리티 추가: AppBehaviorSpec, MainDispatcherListener, fixtures/helpers 등 공통 테스트 베이스 및 유틸리티를 추가했습니다.
  • BDD 테스트 대량 보강: app, core/common 모듈의 data/domain/presentation/common 전반에 걸쳐 64개의 신규 BDD 테스트 파일을 추가하여 로직 검증을 대폭 강화했습니다.
  • 핵심 로직 Clock 주입 적용: AppModuleClock provider를 추가하고, AlarmUseCase, CalendarUtil, WidgetCacheManager, WidgetDataDisplayManager 등 시간 계산 및 캐시 검증 로직에 Clock 파라미터를 반영했습니다.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • app/build.gradle.kts
    • Configured JUnit Platform for unit tests.
    • Added Kotest, MockK, Coroutines Test, and Turbine dependencies for enhanced testing capabilities.
  • app/src/main/java/com/eatssu/android/di/AppModule.kt
    • Added a Clock provider to enable dependency injection of time-related logic.
  • app/src/main/java/com/eatssu/android/domain/usecase/alarm/AlarmUsecase.kt
    • Modified the AlarmUseCase to utilize the injected Clock instead of directly calling System.currentTimeMillis() for alarm scheduling.
  • app/src/main/java/com/eatssu/android/presentation/util/CalendarUtil.kt
    • Updated the getNextDayDate() method to accept an injected Clock parameter, improving testability for date calculations.
  • app/src/main/java/com/eatssu/android/presentation/widget/WidgetCacheManager.kt
    • Refactored cache validation and storage methods to incorporate an injected Clock for accurate time-dependent caching logic.
  • app/src/main/java/com/eatssu/android/presentation/widget/util/WidgetDataDisplayManager.kt
    • Modified data fetching and meal time calculation logic to accept an injected Clock, enhancing testability and control over time-sensitive operations.
  • app/src/test/java/com/eatssu/android/data/model/ApiResultBehaviorSpec.kt
    • Added BDD tests for ApiResult extension functions to ensure correct handling of API responses.
  • app/src/test/java/com/eatssu/android/data/remote/dto/response/MenuAndMealResponseMapperBehaviorSpec.kt
    • Added BDD tests for menu and meal response mappers, verifying data transformation logic.
  • app/src/test/java/com/eatssu/android/data/remote/dto/response/PartnershipResponseMapperBehaviorSpec.kt
    • Added BDD tests for partnership response mappers, ensuring accurate domain model conversion.
  • app/src/test/java/com/eatssu/android/data/remote/dto/response/ReviewResponseMapperBehaviorSpec.kt
    • Added BDD tests for review response mappers, covering various review data transformations.
  • app/src/test/java/com/eatssu/android/data/remote/dto/response/UserAndTokenResponseMapperBehaviorSpec.kt
    • Added BDD tests for user and token response mappers, validating user authentication and profile data handling.
  • app/src/test/java/com/eatssu/android/data/remote/paging/BaseReviewPagingSourceBehaviorSpec.kt
    • Added BDD tests for the base review paging source, verifying its load behavior and error handling.
  • app/src/test/java/com/eatssu/android/data/remote/paging/MealReviewPagingSourceBehaviorSpec.kt
    • Added BDD tests for the meal review paging source, ensuring correct API interaction and data delivery.
  • app/src/test/java/com/eatssu/android/data/remote/paging/MenuReviewPagingSourceBehaviorSpec.kt
    • Added BDD tests for the menu review paging source, validating its API calls and data processing.
  • app/src/test/java/com/eatssu/android/data/remote/repository/FirebaseRemoteConfigRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the Firebase Remote Config repository implementation, covering version checks and restaurant info retrieval.
  • app/src/test/java/com/eatssu/android/data/remote/repository/HealthCheckRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the health check repository, ensuring API health status is correctly reported.
  • app/src/test/java/com/eatssu/android/data/remote/repository/MealRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the meal repository, verifying meal data retrieval and mapping.
  • app/src/test/java/com/eatssu/android/data/remote/repository/MenuRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the menu repository, validating fixed menu retrieval.
  • app/src/test/java/com/eatssu/android/data/remote/repository/OauthRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the OAuth repository, covering token reissue, login, and validation.
  • app/src/test/java/com/eatssu/android/data/remote/repository/PartnershipRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the partnership repository, verifying retrieval of all and user-specific partnerships.
  • app/src/test/java/com/eatssu/android/data/remote/repository/ReportRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the report repository, ensuring review reporting functionality.
  • app/src/test/java/com/eatssu/android/data/remote/repository/ReviewRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the review repository, covering write, delete, modify, and info retrieval operations.
  • app/src/test/java/com/eatssu/android/data/remote/repository/UserRepositoryImplBehaviorSpec.kt
    • Added BDD tests for the user repository, validating nickname changes, college/department retrieval, and sign-out.
  • app/src/test/java/com/eatssu/android/di/network/ApiResultCallAdapterBehaviorSpec.kt
    • Added BDD tests for ApiResultCallAdapter, ensuring correct adaptation of Retrofit calls.
  • app/src/test/java/com/eatssu/android/di/network/ApiResultCallAdapterFactoryBehaviorSpec.kt
    • Added BDD tests for ApiResultCallAdapterFactory, verifying proper creation of call adapters.
  • app/src/test/java/com/eatssu/android/di/network/ApiResultCallBehaviorSpec.kt
    • Added BDD tests for ApiResultCall, covering various API response scenarios including success, failure, and network errors.
  • app/src/test/java/com/eatssu/android/di/network/TokenAuthenticatorBehaviorSpec.kt
    • Added BDD tests for the token authenticator, validating token refresh and logout scenarios.
  • app/src/test/java/com/eatssu/android/di/network/TokenInterceptorBehaviorSpec.kt
    • Added BDD tests for the token interceptor, ensuring correct addition of authorization headers.
  • app/src/test/java/com/eatssu/android/domain/usecase/alarm/AlarmNotificationStatusUseCasesBehaviorSpec.kt
    • Added BDD tests for alarm notification status use cases, verifying persistence and retrieval.
  • app/src/test/java/com/eatssu/android/domain/usecase/alarm/AlarmUseCaseBehaviorSpec.kt
    • Added BDD tests for AlarmUseCase, confirming correct alarm scheduling and cancellation with Clock injection.
  • app/src/test/java/com/eatssu/android/domain/usecase/auth/AuthDelegatingUseCasesBehaviorSpec.kt
    • Added BDD tests for various authentication delegating use cases, covering token management and user logout.
  • app/src/test/java/com/eatssu/android/domain/usecase/auth/ReissueAndStoreTokenUseCaseBehaviorSpec.kt
    • Added BDD tests for the token reissue and store use case, validating different outcomes of token refresh.
  • app/src/test/java/com/eatssu/android/domain/usecase/health/HealthCheckUseCaseBehaviorSpec.kt
    • Added BDD tests for the health check use case, ensuring it correctly reports service health.
  • app/src/test/java/com/eatssu/android/domain/usecase/menu/GetMenuListUseCaseBehaviorSpec.kt
    • Added BDD tests for the menu list retrieval use case, verifying behavior for fixed and variable menus.
  • app/src/test/java/com/eatssu/android/domain/usecase/menu/GetValidMenusOfMealUseCaseBehaviorSpec.kt
    • Added BDD tests for the valid menus of meal use case, ensuring correct menu filtering.
  • app/src/test/java/com/eatssu/android/domain/usecase/review/GetReviewInfoUseCaseBehaviorSpec.kt
    • Added BDD tests for the review info retrieval use case, validating review statistics for different menu types.
  • app/src/test/java/com/eatssu/android/domain/usecase/review/ReviewDelegatingUseCasesBehaviorSpec.kt
    • Added BDD tests for various review delegating use cases, including delete, image upload, and paging.
  • app/src/test/java/com/eatssu/android/domain/usecase/review/WriteReviewUseCaseBehaviorSpec.kt
    • Added BDD tests for the write review use case, covering different menu types and image handling.
  • app/src/test/java/com/eatssu/android/domain/usecase/user/GetPartnershipDetailUseCaseBehaviorSpec.kt
    • Added BDD tests for the partnership detail use case, verifying selection logic for partnership information.
  • app/src/test/java/com/eatssu/android/domain/usecase/user/UserDelegatingUseCasesBehaviorSpec.kt
    • Added BDD tests for user delegating use cases, including user info retrieval and updates.
  • app/src/test/java/com/eatssu/android/domain/usecase/user/ValidateNicknameLocalUseCaseBehaviorSpec.kt
    • Added BDD tests for local nickname validation rules, covering length, characters, and profanity.
  • app/src/test/java/com/eatssu/android/domain/usecase/widget/GetTodayMealUseCaseBehaviorSpec.kt
    • Added BDD tests for the widget today meal use case, validating meal retrieval and error handling.
  • app/src/test/java/com/eatssu/android/domain/usecase/widget/WidgetRestaurantUseCasesBehaviorSpec.kt
    • Added BDD tests for widget restaurant use cases, ensuring correct saving and loading of restaurant preferences.
  • app/src/test/java/com/eatssu/android/presentation/MainViewModelBehaviorSpec.kt
    • Added BDD tests for MainViewModel, covering department refresh, nickname handling, and logout.
  • app/src/test/java/com/eatssu/android/presentation/cafeteria/info/InfoViewModelBehaviorSpec.kt
    • Added BDD tests for InfoViewModel, verifying restaurant information retrieval.
  • app/src/test/java/com/eatssu/android/presentation/cafeteria/menu/MenuViewModelBehaviorSpec.kt
    • Added BDD tests for MenuViewModel, validating menu loading for various restaurants.
  • app/src/test/java/com/eatssu/android/presentation/cafeteria/review/list/ReviewListViewModelBehaviorSpec.kt
    • Added BDD tests for ReviewListViewModel, covering review info loading and deletion.
  • app/src/test/java/com/eatssu/android/presentation/cafeteria/review/modify/ModifyViewModelBehaviorSpec.kt
    • Added BDD tests for ModifyViewModel, verifying review modification and state changes.
  • app/src/test/java/com/eatssu/android/presentation/cafeteria/review/report/ReportViewModelBehaviorSpec.kt
    • Added BDD tests for ReportViewModel, ensuring correct reporting functionality and state updates.
  • app/src/test/java/com/eatssu/android/presentation/cafeteria/review/write/WriteReviewViewModelBehaviorSpec.kt
    • Added BDD tests for WriteReviewViewModel, covering review submission, image handling, and validation.
  • app/src/test/java/com/eatssu/android/presentation/intro/IntroViewModelBehaviorSpec.kt
    • Added BDD tests for IntroViewModel, validating version checks, health checks, and token status.
  • app/src/test/java/com/eatssu/android/presentation/login/LoginViewModelBehaviorSpec.kt
    • Added BDD tests for LoginViewModel, covering Kakao login success/failure and state management.
  • app/src/test/java/com/eatssu/android/presentation/login/UserApiClientBehaviorSpec.kt
    • Added BDD tests for UserApiClient extension functions, verifying Kakao login flows and error handling.
  • app/src/test/java/com/eatssu/android/presentation/map/MapViewModelBehaviorSpec.kt
    • Added BDD tests for MapViewModel, covering partnership loading, filtering, and selection.
  • app/src/test/java/com/eatssu/android/presentation/mypage/MyPageViewModelBehaviorSpec.kt
    • Added BDD tests for MyPageViewModel, validating nickname display and alarm notification toggling.
  • app/src/test/java/com/eatssu/android/presentation/mypage/SignOutViewModelBehaviorSpec.kt
    • Added BDD tests for SignOutViewModel, ensuring correct sign-out process and state updates.
  • app/src/test/java/com/eatssu/android/presentation/mypage/language/LanguageSelectorViewModelBehaviorSpec.kt
    • Added BDD tests for LanguageSelectorViewModel, verifying language selection and persistence.
  • app/src/test/java/com/eatssu/android/presentation/mypage/myreview/MyReviewViewModelBehaviorSpec.kt
    • Added BDD tests for MyReviewViewModel, covering review list display and deletion.
  • app/src/test/java/com/eatssu/android/presentation/mypage/userinfo/UserInfoViewModelBehaviorSpec.kt
    • Added BDD tests for UserInfoViewModel, validating user info loading, nickname validation, and updates.
  • app/src/test/java/com/eatssu/android/presentation/util/CalendarUtilBehaviorSpec.kt
    • Added BDD tests for CalendarUtil, verifying date formatting and calculation methods.
  • app/src/test/java/com/eatssu/android/presentation/util/TimeUtilBehaviorSpec.kt
    • Added BDD tests for TimeUtil, ensuring correct time index calculation.
  • app/src/test/java/com/eatssu/android/presentation/widget/WidgetCacheManagerBehaviorSpec.kt
    • Added BDD tests for WidgetCacheManager, validating caching and invalidation logic.
  • app/src/test/java/com/eatssu/android/presentation/widget/util/WidgetDataDisplayManagerBehaviorSpec.kt
    • Added BDD tests for WidgetDataDisplayManager, verifying widget data fetching and meal time determination.
  • app/src/test/java/com/eatssu/android/test/AppBehaviorSpec.kt
    • Added a base class for Kotest BehaviorSpec, integrating common test setup.
  • app/src/test/java/com/eatssu/android/test/MainDispatcherListener.kt
    • Added a Kotest listener to manage the main dispatcher for coroutine testing.
  • app/src/test/java/com/eatssu/android/test/TestFixtures.kt
    • Added test data fixtures for various domain models to simplify test setup.
  • app/src/test/java/com/eatssu/android/test/TestHelpers.kt
    • Added test helper functions for UI event assertions and state extraction.
  • core/common/build.gradle.kts
    • Configured JUnit Platform for unit tests.
    • Added Kotest, MockK, Coroutines Test, and Turbine dependencies for enhanced testing capabilities.
  • core/common/src/test/java/com/eatssu/common/UiContractBehaviorSpec.kt
    • Added BDD tests for UiState and UiEvent contracts, ensuring their behavior and data integrity.
  • core/common/src/test/java/com/eatssu/common/UiTextBehaviorSpec.kt
    • Added BDD tests for UiText implementations, verifying string resource and dynamic string handling.
  • core/common/src/test/java/com/eatssu/common/enums/EnumsBehaviorSpec.kt
    • Added BDD tests for common enums, validating their utility functions and mappings.
  • gradle/libs.versions.toml
    • Updated versions for Kotest to 5.9.1.
    • Updated versions for MockK to 1.13.17.
    • Updated versions for Turbine to 1.2.0.
Activity
  • PeraSite created this pull request to initiate the Compose migration and enhance testing infrastructure.
  • PeraSite confirmed that unit tests for the app and core:common modules passed successfully by running ./gradlew :app:testDebugUnitTest :core:common:testDebugUnitTest.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

안녕하세요! 모든 비즈니스 로직에 BDD 기반 테스트를 구축하는 대규모 작업을 진행해주셔서 감사합니다. Clock을 주입하여 시간 의존적인 로직을 테스트 가능하게 변경하신 점과 Kotest를 사용해 BDD 스타일로 테스트를 작성하신 점 모두 훌륭합니다. 이를 통해 향후 Compose 마이그레이션을 더 안전하게 진행할 수 있는 튼튼한 기반이 마련되었다고 생각합니다.

전반적으로 코드 변경 사항들은 매우 훌륭하며, 특히 방대한 양의 테스트 코드를 추가하신 노고에 감사드립니다. 리뷰 중 몇 가지 새로운 테스트 코드에서 발견된 기존 로직의 개선점을 발견하여 코멘트를 남겼습니다. 새로 추가된 테스트 덕분에 이런 부분들을 발견할 수 있었네요. 확인 부탁드립니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

비즈니스 로직 테스트 추가

1 participant