在我的应用中,我将Flutter的错误记录到Crashlytics中。
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
当运行集成测试时,如果出现异常,控制台会显示以下语句,并且测试会一直挂起:
运行测试时发生以下异常:I/flutter (30479): 一个测试覆盖了FlutterError.onError但未将其返回到原始状态,或者具有意外的附加错误,无法处理。通常,这是由于在恢复FlutterError.onError之前使用expect()引起的。
控制台中的上述消息提示onError覆盖存在问题,我该如何按照控制台中的建议将FlutterError.onError还原为其原始状态?请注意,我正在使用新推荐的integration test方式。
testWidgets()
每个测试体的开头重新覆盖onError
,因为它很快就会被下一个testWidgets()
所覆盖。 - Hieu Phamentrypoint.main()
有一些代码覆盖了onError
(例如FirebaseCrashlytics),旧的onError
将被丢弃。我快速解决这个问题的方法是将entrypoint.main()
移到originalOnError = FlutterError.onError!
之后,但在FlutterError.onError = originalOnError
之前。 - Hieu Pham