testWidgets 方法中“异步”的原因是啥?
Posted
技术标签:
【中文标题】testWidgets 方法中“异步”的原因是啥?【英文标题】:What's the reason for "async" in testWidgets methods?testWidgets 方法中“异步”的原因是什么? 【发布时间】:2017-06-09 21:09:08 【问题描述】:我能找到的每个widget testing 的例子都有你编写带有签名testWidgets('name of the test', (WidgetTester tester) async
的方法。 async
部分是否始终是测试框架的某些要求所必需的,或者仅当您使用 await
或在方法主体的某处进行 Future 调用时?
【问题讨论】:
【参考方案1】:async
仅在使用await
时才需要。
即使没有必要,他们似乎也有点急于添加(或忘记删除)。
【讨论】:
@FrankHarper 您认为哪一部分不正确?文档确实包含添加了async
的方法,即使未使用 await
- 例如 setUp()
。
@FrankHarper 我的回答是在使用await
时需要async
。 Ian 刚刚解释了为什么他们在几乎每个测试中都使用await
。如果不使用await
,则不需要async
。因此,这不是测试框架或类似框架的要求。【参考方案2】:
每当您使用pumpWidgets
时都需要它,如果您使用testWidgets
,您几乎总是会使用它,因为这就是testWidgets
的意义所在。
pumpWidgets
之所以使用它,是因为您可以使用 flutter test
加速人工时间或实时 flutter run
运行测试。
【讨论】:
以上是关于testWidgets 方法中“异步”的原因是啥?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 testWidgets 测试 Widget 的动态颜色