提供商小部件测试

时间:2020-09-25 03:40:31

标签: flutter flutter-test

在将小部件泵入testWidgets()之前如何添加数据?

我的代码引用了此codelab,但是我的DoneModuleList()不需要侦听提供程序,所以我不想使用Consumer,因为数据将被添加到另一个页面上。 / p>

这是我的测试用例:

Widget createDoneModulePage() => ChangeNotifierProvider(
      create: (context) {
        provider = DoneModuleProvider();
        return provider;
      },
      child: MaterialApp(
        home: DoneModuleList(),
      ),
    );

void addItems() {
  var testModule1 = 'Test Module 1';
  var testModule2 = 'Test Module 2';

  provider.complete(testModule1);
  provider.complete(testModule2);
}

void main() {
  group('Done Module List Tests', () {
    testWidgets('Test if items added', (tester) async {
      await tester.pumpWidget(createDoneModulePage());
      addItems();
      await tester.pumpAndSettle();
      var totalItems = tester.widgetList(find.byType(ListTile)).length;
      expect(2, totalItems);
    });
  });
}

0 个答案:

没有答案