31 lines
1.2 KiB
Dart
31 lines
1.2 KiB
Dart
// 应用启动烟雾测试。
|
||
//
|
||
// 验证 CupertinoApp.router + ProviderScope + GoRouter 能正常构建并渲染首屏。
|
||
// 重构后入口为 buildApp(buildAppRouter()),不再存在默认模板的 MyApp / Counter。
|
||
//
|
||
// 注意:TokenStorage 依赖 MMKV,需在测试环境先 initialize(真实运行在 main 中完成)。
|
||
|
||
import 'package:cupertino_ui/cupertino_ui.dart';
|
||
import 'package:flutter_test/flutter_test.dart';
|
||
|
||
import 'package:ttstd_family_care/app/app.dart';
|
||
import 'package:ttstd_family_care/app/router/app_router.dart';
|
||
import 'package:ttstd_family_care/core/storage/token_storage.dart';
|
||
|
||
void main() {
|
||
setUpAll(() async {
|
||
// 初始化 MMKV,避免启动页路由决策时访问未就绪的存储。
|
||
await TokenStorage.initialize();
|
||
});
|
||
|
||
testWidgets('应用可正常构建并渲染首屏', (tester) async {
|
||
// 构建真实应用根组件(ProviderScope + CupertinoApp.router)。
|
||
await tester.pumpWidget(buildApp(buildAppRouter()));
|
||
// 等待启动页 2s 路由决策定时器与导航动画完成。
|
||
await tester.pumpAndSettle(const Duration(seconds: 5));
|
||
|
||
// 应用根组件成功挂载(整棵组件树的根始终为 CupertinoApp)。
|
||
expect(find.byType(CupertinoApp), findsOneWidget);
|
||
});
|
||
}
|