mattermost-push-plugin/agent-ops/roadmap/phase/android-runtime-confidence/milestones/native-unit-coverage.md

2.9 KiB

Milestone: Native 단위 테스트 확장

위치

  • Roadmap: agent-ops/roadmap/ROADMAP.md
  • Phase: agent-ops/roadmap/phase/android-runtime-confidence/PHASE.md

목표

Android native runtime의 핵심 helper와 method contract를 단위 테스트로 검증한다. 단순 platform version boilerplate 테스트를 넘어 payload, token, signing key, storage, helper behavior를 변경 위험에 맞게 확인한다.

상태

[계획]

구현 잠금

  • 상태: 해제
  • 결정 필요: 없음

범위

  • Android plugin method call contract 테스트
  • payload parsing과 fallback 기준 테스트
  • token/signing key 저장과 조회 테스트
  • Room 또는 helper 계층의 테스트 가능성 개선

필수 기능

Epic: [method-contract] Method Channel 계약

Flutter Dart API가 호출하는 native method의 입력/출력 계약을 검증한다.

  • [save-token] saveDeviceToken 입력 검증과 저장 호출을 테스트한다
  • [get-token] getDeviceToken 반환 계약을 테스트한다
  • [auth-token] setAuthTokenclearAuthToken 계약을 테스트한다
  • [signing-key] setSigningKey 저장 계약을 테스트한다

Epic: [payload] Payload 처리

Mattermost push payload key와 fallback 규칙을 안정적으로 유지한다.

  • [intent-payload] intent extras가 opened event payload로 변환되는지 테스트한다
  • [snake-case] server_url, channel_id, root_id, is_crt_enabled key 호환을 유지한다
  • [missing-server] server_url 누락 시 fallback 정책을 테스트한다

Epic: [storage] 저장 계층

테스트하기 어려운 저장 경로를 작게 분리한다.

  • [db-boundary] Room/DatabaseHelper 테스트 경계를 정리한다
  • [prefs-boundary] SharedPreferences signing key 저장 경계를 테스트한다
  • [test-fixtures] native unit test fixture를 추가한다

완료 기준

  • Android native test가 platform version boilerplate 이상의 plugin 계약을 검증한다
  • token, auth token, signing key 경로가 테스트로 보호된다
  • payload key 변경 시 테스트가 실패할 수 있다
  • Android unit test 실행 방법이 문서와 일치한다

완료 리뷰

  • 상태: 없음
  • 요청일: 없음
  • 완료 근거: 없음
  • 리뷰 필요:
    • 사용자가 완료 결과를 확인했다
    • archive 이동을 승인했다
  • 리뷰 코멘트: 없음

범위 제외

  • 실제 FCM 수신 E2E
  • 실제 Mattermost 서버 ACK
  • iOS/macOS native 테스트

작업 컨텍스트

  • 관련 경로: android/src/main/**, android/src/test/**, example/android/**
  • 표준선(선택): native unit test는 외부 Firebase/Mattermost 네트워크 없이 deterministic하게 유지한다
  • 선행 작업: 품질 게이트 자동화
  • 후속 작업: 알림 액션 흐름 검증, ACK와 네트워크 회복성 검증
  • 확인 필요: 없음