From df782d79687a8b061d49a13672704c07c9569861 Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 28 May 2026 12:12:24 +0900 Subject: [PATCH] =?UTF-8?q?docs(banner):=20Phase=207=20=EA=B2=80=EC=A6=9D?= =?UTF-8?q?=EC=9D=84=20=EA=B8=B0=EB=A1=9D=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- docs/agent-guides/build-test-style.md | 5 +++++ docs/plan-task/20260527_배너컴포넌트.md | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docs/agent-guides/build-test-style.md b/docs/agent-guides/build-test-style.md index 9a5d218b..6d559938 100644 --- a/docs/agent-guides/build-test-style.md +++ b/docs/agent-guides/build-test-style.md @@ -60,6 +60,11 @@ ./gradlew :app:testDebugUnitTest --tests "*TimeUtilsTest*" ``` +배너 컴포넌트 테스트 예시: +```bash +./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.*" +``` + 참고: - 신규 Kotlin 테스트 메서드는 backtick 함수명을 사용하고, 테스트명은 한글 문장으로 작성한다. - 기존 영어 테스트명을 수정하지 않는 최소 변경 상황을 제외하고, 새 테스트명에 영어 문장을 사용하지 않는다. diff --git a/docs/plan-task/20260527_배너컴포넌트.md b/docs/plan-task/20260527_배너컴포넌트.md index d8b89c0f..43db4e7c 100644 --- a/docs/plan-task/20260527_배너컴포넌트.md +++ b/docs/plan-task/20260527_배너컴포넌트.md @@ -310,13 +310,13 @@ ### Phase 7: 문서, 검증, 마무리 -- [ ] **Task 7.1: 테스트 실행 예시 문서 갱신** +- [x] **Task 7.1: 테스트 실행 예시 문서 갱신** - 수정 파일: `docs/agent-guides/build-test-style.md` - 추가 내용: 배너 컴포넌트 단일 테스트 실행 예시. - 예시 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.*"` - 검증: 기존 문서 형식과 중복되지 않게 최소 변경한다. -- [ ] **Task 7.2: 단위 테스트 실행** +- [x] **Task 7.2: 단위 테스트 실행** - 실행: - `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerLayoutCalculatorTest"` - `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerCounterFormatterTest"` @@ -324,13 +324,13 @@ - `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerViewTest"` - 기대 결과: 모두 `BUILD SUCCESSFUL`. -- [ ] **Task 7.3: 리소스/빌드 검증** +- [x] **Task 7.3: 리소스/빌드 검증** - 실행: - `./gradlew :app:assembleDebug` - 필요 시 `./gradlew :app:ktlintCheck` - 기대 결과: resource merge, Kotlin compile, ktlint가 성공한다. -- [ ] **Task 7.4: 수동 확인 항목 기록** +- [x] **Task 7.4: 수동 확인 항목 기록** - 확인 항목: - XML layout editor에서 배너 preview, radius, counter 위치가 보인다. - 1개 배너는 정사각형 단일 이미지로 가운데 정렬된다. @@ -370,3 +370,7 @@ - 2026-05-28 Phase 6 구현: `BannerView`에서 `bannerPreviewItemCount`, `bannerPreviewCurrentIndex`, `bannerPreviewImage` attrs를 읽어 preview sample item, counter, image resource를 반영하도록 보완했다. `TypedArray.use`는 Robolectric SDK 28에서 `AutoCloseable` 캐스팅 문제가 있어 `try/finally recycle()`로 처리했다. `BannerAdapter`는 preview image resource가 지정된 경우 bind 시 `ImageView`에 적용하도록 보완했다. - 2026-05-28 Phase 6 GREEN: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerViewTest"` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. - 2026-05-28 Phase 6 최종 검증: click callback 보강 테스트 추가 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerViewTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.*"`, `./gradlew :app:assembleDebug` 실행 결과 모두 `BUILD SUCCESSFUL`을 확인했다. +- 2026-05-28 Phase 7 문서 갱신: `docs/agent-guides/build-test-style.md`의 단일 테스트 실행 섹션에 배너 컴포넌트 테스트 예시 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.*"`를 추가했다. +- 2026-05-28 Phase 7 단위 테스트 검증: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerLayoutCalculatorTest" --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerCounterFormatterTest" --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerStateTest" --tests "kr.co.vividnext.sodalive.v2.widget.banner.BannerViewTest"`와 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.banner.*"` 실행 결과 모두 `BUILD SUCCESSFUL`을 확인했다. +- 2026-05-28 Phase 7 리소스/빌드/스타일 검증: `./gradlew :app:assembleDebug`와 `./gradlew :app:ktlintCheck` 실행 결과 모두 `BUILD SUCCESSFUL`을 확인했다. `ktlintCheck` 과정에서 배너 파일의 wrapping/blank line 지적과 테스트 소스의 unused import 지적을 최소 수정했다. +- 2026-05-28 Phase 7 수동 확인 기록: 실제 기기/Android Studio XML layout editor는 이 환경에서 열 수 없어 직접 시각 확인은 수행하지 못했다. 대신 Robolectric `BannerViewTest`와 `assembleDebug`로 preview attrs 반영, counter 표시, radius outline provider, 0/1/2개 상태, 좌우 peek/spacing 계산, 자동 전환 5초, 수동 drag timer reset, attach/detach cleanup, 무한 순환 index 동작을 검증했다.