0

我正在初始化应用程序

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()没有正确处理。

  1. 有没有办法告诉integration_test每次重新加载测试时重置整个环境?

  2. 我应该以不同于静态的方式初始化事物吗Initializer.init();

  3. 我应该明确处置/注销所有依赖项(就像Initializer.dispose()在每个测试结束时一样)?该解决方案似乎是一场噩梦,因为我使用了许多不允许明确处置的第三方。

4

0 回答 0