【发布时间】:2019-03-19 16:40:25
【问题描述】:
我想测试一个具有 Future 构建器的函数。功能是:
Widget loadWidget() {
return new FutureBuilder(
future: getData(),
builder: (BuildContext context, AsyncSnapshot<double> snapshot) {
if (snapshot.hasData) {
double content = snapshot.data;
return new Container(...)
} else {
return new Center(
child: CircularProgressIndicator(),
);
我尝试编写的测试类似于:
testWidgets("should return a container",
(WidgetTester tester) async {
await tester.pumpWidget(
StatefulBuilder(builder: (BuildContext context, StateSetter setState) {
return MaterialApp(
home: Material(
child: Scaffold(
body:loadWidget());
}));
expect(find.byType(Container), findsOneWidget);
getData() 函数似乎可以工作,所以我认为我的问题可能是我不知道如何处理 AsyncSnapshot。
【问题讨论】:
-
您遇到了什么错误?
-
尝试在
await tester.pumpWidget(...)之后调用await tester.pump();让FutureBuilder 解析
标签: testing dart flutter future