【发布时间】:2023-02-02 22:09:34
【问题描述】:
我是写作新手小部件测试用例在 Flutter 中,当我尝试为使用的模块编写测试用例时,我发现有关 Flutter 测试的资源非常少Firestore它给出了以下错误:没有创建 Firebase 应用“[DEFAULT]” - 调用 Firebase.initializeApp()- 错误 1
MapsBloc 的 MapsRepository 正在使用 Firestore 获取数据
我尝试了很多示例,下面的代码可以正常工作,但会出现另一个错误:FirebaseCoreHostApi.initializeCore PlatformException(通道错误,无法在通道上建立连接。,null,null)- 此处未观察到错误 1
测试文件
void main() async{
TestWidgetsFlutterBinding.ensureInitialized();
//WidgetsFlutterBinding.ensureInitialized();
setUpAll(() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
); // setupall method is eliminated Error 1
});
testWidgets('Form Widget Test', (tester) async {
await tester.pumpWidget(initApp());
await tester.pumpAndSettle();
await tester.pump(const Duration(seconds: 2));
// Create the Finders.
final stack = find.byType(Stack);
// Create the Matchers
expect(stack, findsWidgets);
});
}
Widget initApp() {
MapsRepository mapsRepository = MapsRepository();
MapsBloc mapsBloc = MapsBloc();
MyMaps myMaps = const MyMaps();
return EasyLocalization(
supportedLocales: const [Locale('en', 'US'), Locale('hi', 'IN')],
path: 'assets/translations',
fallbackLocale: const Locale('en', 'US'),
child: MultiProvider(
providers: [
BlocProvider<MapsBloc>.value(
value: mapsBloc,
child: myMaps,
),
],
child: const MyApp(),
),
);
}
我在这里缺少的是,相同的结构适用于其他测试文件。一些测试文件正在通过测试用例,一些正在抛出错误
我试过像下面这样打印
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
).whenComplete(() => print("completed init"));
这也不起作用。任何工作示例都会非常有帮助。谢谢
【问题讨论】:
标签: flutter firebase google-cloud-firestore widget-test-flutter