Files
asciinevrdie/test/widget_test.dart
JiWoong Sul e051bd451a 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: 테스트용 서비스 로케이터 초기화
2026-03-30 19:41:13 +09:00

31 lines
1001 B
Dart

import 'package:asciineverdie/src/app.dart';
import 'package:flutter_test/flutter_test.dart';
import 'helpers/test_setup.dart';
void main() {
// SharedPreferences 모킹 및 서비스 로케이터 초기화
setUpAll(() {
TestSetup.mockSharedPreferences();
TestSetup.ensureServiceLocator();
});
// 각 테스트 후 싱글톤 서비스 정리 (타이머 누수 방지)
tearDown(() {
TestSetup.resetAllServices();
});
testWidgets('App launches and shows splash screen', (tester) async {
await tester.pumpWidget(const AskiiNeverDieApp());
// AudioService 초기화 타이머들이 완료될 시간 제공
// - init() 내 Future.delayed 200ms (line 130)
// - _initSfxPools() 내 Future.delayed 200ms (line 201)
// - 재시도 로직의 추가 지연 가능성
await tester.pump(const Duration(seconds: 1));
// 앱이 정상적으로 렌더링되는지 확인 (크래시 없음)
expect(find.byType(AskiiNeverDieApp), findsOneWidget);
});
}