// This is a basic Flutter widget test. // To perform an interaction with a widget in your test, use the WidgetTester utility that Flutter // provides. For example, you can send tap and scroll gestures. You can also use WidgetTester to // find child widgets in the widget tree, read text, and verify that the values of widget properties // are correct. import 'dart:async'; import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; import 'package:rxdart/rxdart.dart'; import 'package:http/http.dart' as http; void main() { Widget snapshotText(BuildContext context, AsyncSnapshot snapshot) { print(snapshot.toString()); return new Text(snapshot.toString(), textDirection: TextDirection.ltr); } Future eventFiring(WidgetTester tester) async { await tester.pump(Duration.zero); } // create a data stream final _dataStreamSubject = BehaviorSubject(); Stream_dataStream = _dataStreamSubject.stream; void refresh() async { http.Response response = await http.get( "https://jsonplaceholder.typicode.com/todos/1" ); if (response.statusCode == 200) { _dataStreamSubject.add("success"); }else { _dataStreamSubject.add("failed"); } } testWidgets("StreamBuilder from HTTP Request", (WidgetTester tester) async { await tester.pumpWidget(new StreamBuilder( stream:_dataStream, builder: snapshotText )); await refresh(); eventFiring(tester); expect(find.text("AsyncSnapshot(ConnectionState.active, true, null)"), findsOneWidget); }); }