小编Nac*_*acK的帖子

如何为有状态小部件编写测试?

我有一个有状态的小部件,其状态取决于异步 firebase 数据库读取调用。在获取数据时,我会显示一个等待循环指示器。一旦数据获取完成,我就会显示实际的 ListView 小部件。

我想编写一个小部件测试来测试此功能。如何在测试中设置 isReadComplete = true 的值?或者如何从我的测试中显式调用 success_callback() ?

bool isReadComplete;

App(){
   isReadComplete = false;

   firestore.collection('collection').document('doc').get().then((doc) {
      success_callback(doc.data);
    }).catchError((error) => {});
}


void success_callback(var data){
   setState((){
      isReadComplete = true;
   })
}

@override
  Widget build(BuildContext context) {
    if (!isReadComplete) {
      return new CircularIndicator();
    } else {
      List<Widget> widgetList = [];      
      return Scaffold(
          body: ListView(
        padding: EdgeInsets.all(8.0),
        children: widgetList,
      ));
    }
  }

// Test for CircularProgressIndicator

testWidgets("Check CircularProgressIndicator", (WidgetTester tester) async {

      await tester.pumpWidget(new MaterialApp(home: App));

      // This works …
Run Code Online (Sandbox Code Playgroud)

widget firebase flutter google-cloud-firestore flutter-test

5
推荐指数
1
解决办法
3449
查看次数