feat(arch): GetIt DI + IIAPService/IAdService 인터페이스 도입

- core/di/: service_locator, IIAPService, IAdService 생성
- IAPService/AdService: implements 인터페이스 + GetIt 위임
- main.dart: setupServiceLocator() 호출
- 기존 .instance getter 호환성 100% 유지
- test/helpers/test_setup.dart: 테스트용 서비스 로케이터 초기화
This commit is contained in:
JiWoong Sul
2026-03-30 19:41:13 +09:00
parent c382d6d770
commit e051bd451a
11 changed files with 150 additions and 15 deletions

View File

@@ -1,6 +1,9 @@
import 'package:asciineverdie/src/core/audio/audio_service.dart';
import 'package:asciineverdie/src/core/di/i_iap_service.dart';
import 'package:asciineverdie/src/core/di/service_locator.dart';
import 'package:flutter/services.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get_it/get_it.dart';
/// 위젯 테스트에서 사용하는 공통 셋업/정리 유틸리티
///
@@ -22,6 +25,15 @@ class TestSetup {
);
}
/// 서비스 로케이터(service locator) 초기화
///
/// 테스트에서 GetIt 의존성이 필요한 경우 setUpAll에서 호출
static void ensureServiceLocator() {
if (!GetIt.instance.isRegistered<IIAPService>()) {
setupServiceLocator();
}
}
/// 모든 싱글톤 서비스 정리
///
/// tearDown에서 호출하여 타이머 및 리소스 정리