Может кто-нибудь показать мне, как реализовать переопределение ошибок трепетания во время теста виджета, чтобы я мог проверить свои собственные пользовательские ошибки.
Я видел фрагменты онлайн, упоминающие об этом, но все мои реализации терпят неудачу
void main() {
testWidgets('throws an error when scanning unknown term types', (WidgetTester tester) async {
await tester.pumpWidget(injectTestWidget(new ItemScanScreen()));
await tester.enterText(find.byKey(new Key('term')), '');
await tester.tap(find.byIcon(Icons.send));
await tester.pump();
expect(
tester.takeException(),
isInstanceOf<UnrecognizedTermException>(),
reason: 'should have thrown an UnrecognizedTermException error but didn\'t',
);
});
}
приведенный выше код завершается ошибкой с сообщением ниже, даже если он выглядит так, как будто он «поймал» мою ошибку:
The following UnrecognizedTermException was thrown running a test:
Instance of 'UnrecognizedTermException'
...
Я прочитал, что вы можете сделать что-то вроде приведенного ниже фрагмента, но это не такпосмотрим как / где это реализовать:
final errorHandled = expectAsync0((){});
FlutterError.onError = (errorDetails) {
// handle error
errorHandled();
});