Я пишу флаттер, и у меня возникает эта проблема при написании тестов. Предполагается, что этот метод записывает данные в TextFields и нажимает кнопку, которая сохраняет эти данные в SharedPrefs:
testWidgets('Click on login saves the credentials',
(WidgetTester tester) async {
await tester.pumpWidget(MyApp());
await tester.enterText(find.byKey(Key('phoneInput')), 'test');
await tester.enterText(find.byKey(Key('passwordInput')), 'test');
await tester.tap(find.byIcon(Icons.lock));
SharedPreferences prefs = await SharedPreferences.getInstance();
expect(prefs.getString('phone'), 'test');
expect(prefs.getString('password'), 'test');
});
Этот тест не сможет получить экземпляр SharedPreferences с этой ошибкой:
The following TimeoutException was thrown running a test:
TimeoutException after 0:00:03.500000: The test exceeded the timeout. It may have hung.
Consider using "addTime" to increase the timeout before expensive operations.
Обновление: похоже, что проблема не в тайм-ауте, потому что даже через 60 секунд тест не может разрешить экземпляр SharedPreferences.