我有一个有状态的小部件,其状态取决于异步 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)