# Flutter Test Failures – 2025-XX-XX ## TL;DR - **해결 완료**: `test/integration/naver_api_integration_test.dart`의 “NaverMapParser - 동시성 및 리소스 관리 - 리소스 정리 확인”이 dispose 이후에도 성공을 반환하던 문제가 수정되었습니다. - 수정 내용: `NaverMapParser`가 `dispose()` 호출 뒤 `_isDisposed` 플래그를 설정하고, 이후 `parseRestaurantFromUrl`이 호출되면 `NaverMapParseException('이미 dispose된 파서입니다')`를 던지도록 변경했습니다 (`lib/data/datasources/remote/naver_map_parser.dart`). - 단위 재현 테스트: ```bash flutter test test/integration/naver_api_integration_test.dart \ --plain-name '리소스 정리 확인' ``` - 위 명령은 정상 통과했으며, 전체 스위트는 별도로 재실행해야 합니다. --- ## Failing Spec | 항목 | 내용 | | --- | --- | | 파일 | `test/integration/naver_api_integration_test.dart` | | 라인 | `342-355` (테스트 이름: `NaverMapParser - 동시성 및 리소스 관리 리소스 정리 확인`) | | 기대 | `expect(() => parser.parseRestaurantFromUrl(...), throwsAnything)` | | 실제 | `parseRestaurantFromUrl`가 `Restaurant` 인스턴스를 반환하여 `Future`가 성공적으로 완료됨 | | 로그 | `Expected: throws anything, Actual: ... emitted ` | ### 의심 원인 1. **샘플/시드 데이터 추가** – 최근 추가된 `ManualRestaurantSamples`/`SampleDataInitializer`가 지도 파서의 동작 경로를 바꾸지는 않지만, 테스트 스텁이 더 이상 에러를 내지 않고 정상 데이터를 반환하도록 수정되었을 가능성. 2. **네이버 파서 구현 변경** – `_parseWithLocalSearch` 또는 GraphQL fallback 로직이 보강되면서, 과거에는 에러가 발생하던 케이스도 이제는 성공으로 처리되는 것으로 추정. ### 해야 할 일 1. **전체 스위트 재실행** - 이번 수정은 특정 테스트만 확인했으므로, `flutter test` 전체를 다시 돌려 다른 회귀가 없는지 확인합니다. 2. **Mock/Stubs 정리 (기존 TODO 유지)** - `flutter analyze`가 여전히 `test/mocks/mock_naver_api_client.dart`의 override 경고를 보고하므로, 모킹 계층을 최신 구현과 맞춰 조정해야 합니다. 3. **회귀 방지** - dispose 상태 확인 로직을 다른 리소스 보유 클래스에도 적용 가능한지 검토하고, 유사 패턴의 테스트를 추가하는 것이 좋습니다. --- ## 참고 사항 - `flutter analyze` 또한 160개의 info/warning을 내고 있으며, `test/mocks/mock_naver_api_client.dart`의 `override_on_non_overriding_member` 경고가 존재합니다. 위 이슈를 고치는 과정에서 함께 손볼 것을 권장합니다. - 새로 추가된 샘플 데이터가 방문 이력까지 시드하므로 테스트 환경에 영향을 줄 수 있습니다. 필요 시 테스트에서 Hive 박스를 mock하거나 초기화를 제어하세요.