我正在初始化应用程序
void main() async {
await Initializer.init();
runApp(MyApp());
}
Initializer.init()
初始化像 Firebase Analytics 这样的所有依赖项并注册像 Hive TypeAdapters 这样的东西。
我的示例测试如下所示:
void main() {
IntegrationTestWidgetsFlutterBinding.ensureInitialized();
testWidgets(
'Sample',
(WidgetTester tester) async {
await Initializer.init();
await tester.pumpWidget(MyApp());
await tester.tap(find.text('Something'));
expect(find.text('180 Results'), findsOneWidget);
},
);
testWidgets(
'Sample 2',
(WidgetTester tester) async {
await Initializer.init();
await tester.pumpWidget(MyApp());
await tester.tap(find.text('Something 2'));
expect(find.text('180 Results'), findsOneWidget);
},
);
}
我的问题是,在执行第一个测试后,初始化的东西Initializer.init()
没有正确处理。
有没有办法告诉
integration_test
每次重新加载测试时重置整个环境?我应该以不同于静态的方式初始化事物吗
Initializer.init();
我应该明确处置/注销所有依赖项(就像
Initializer.dispose()
在每个测试结束时一样)?该解决方案似乎是一场噩梦,因为我使用了许多不允许明确处置的第三方。