【发布时间】:2018-11-12 06:55:21
【问题描述】:
有没有办法测试构建一个引发异常的小部件。
我在testWidgets 中尝试过,但它无法识别错误。
expectLater(() async {
await tester.pumpWidget(...);
}, throwsException);
【问题讨论】:
-
你可能想抛出构造函数而不是
build。
有没有办法测试构建一个引发异常的小部件。
我在testWidgets 中尝试过,但它无法识别错误。
expectLater(() async {
await tester.pumpWidget(...);
}, throwsException);
【问题讨论】:
build。
您只能捕获由您的代码调用的代码引发的异常。build() 由 Flutter 框架调用,因此错误会出现在那里。
您可以在测试中为此类异常注册自定义错误处理程序
final errorHandled = expectAsync0((){});
FlutterError.onError = (errorDetails) {
// handle error
errorHandled();
});
如果在测试超时之前没有调用errorHandled,那么测试将失败。
https://docs.flutter.io/flutter/foundation/FlutterError-class.html
【讨论】: