测试CircularProgressIndicator
收藏

我正在使用ModalProgressHud显示微调器,而它正在等待服务器的响应。我想测试一下,当用户点击按钮时,CircularProgressIndicator就会显示出来。我的问题是,pumpAndSettle()会超时,因为这个,我认为,它不断地重建自己。关于如何测试aCircularProgressIndicator的存在有什么建议吗?
这是我的测试:

testWidgets(
      'Should show a CircularProgressIndicator while it tries to login', (WidgetTester tester) async {

    await (tester.pumpWidget(
             generateApp(LoginView())
          ));
    await tester.pumpAndSettle();
    await tester.tap(find.byType(FlatButton));
    await tester.pumpAndSettle();

    expect(find.byType(CircularProgressIndicator), findsOneWidget);
  });


最佳答案:

您应该在登录屏幕之前创建一个“loading”bool并使用setState((){}),当您评估登录是否成功时,应该创建另一个。
我不太确定如何遵循你的代码,但可能是这样的…

bool loading = false;

testWidgets(
      'Should show a CircularProgressIndicator while it tries to login', (WidgetTester tester) async {

    loading == false ? setState((){
             loading = true;
             await (tester.pumpWidget(
             generateApp(LoginView())
          ));}
    await tester.pumpAndSettle();
    await tester.tap(find.byType(FlatButton));
    await tester.pumpAndSettle();

    expect(find.byType(CircularProgressIndicator), findsOneWidget);
  });

    公众号
    关注公众号订阅更多技术干货!