У меня есть поток с задержкой.StreamBuilder никогда не получает значение «foo» из потока в тесте.Если задержка устранена, то тест работает как положено.Как я могу сказать тесту дождаться этой задержки?
testWidgets('stream builder', (tester) async {
final textKey = Key('textKey');
final stream = Observable.just('foo').delay(Duration(milliseconds: 1));
var app = MaterialApp(
home: StreamBuilder<String>(
stream: stream,
builder: (context, snapshot) => Text(
snapshot.data ?? 'no data',
key: textKey,
),
),
);
await tester.pumpWidget(app);
await tester.pump(Duration.zero);
Text text = tester.widget(find.byKey(textKey));
expect(text.data, equals('foo'));
});
Сбой при ошибке
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞══════════════════════════
The following TestFailure object was thrown running a test:
Expected: 'foo'
Actual: 'no data'
Which: is different.
Expected: foo
Actual: no data
^
Differ at offset 0