Skip to content

Instantly share code, notes, and snippets.

@mono0926
Last active January 19, 2023 22:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mono0926/fd95ec7c2076623f8ab05d9f7da7092f to your computer and use it in GitHub Desktop.
Save mono0926/fd95ec7c2076623f8ab05d9f7da7092f to your computer and use it in GitHub Desktop.
import 'dart:async';
import 'package:flutter_test/flutter_test.dart';
import 'package:rxdart/rxdart.dart';
void main() {
test('', () async {
// broadcast取ると、expectはtrueになる
// BehaviorSubjectでも、expectはtrueになる
final controller = StreamController<bool>.broadcast();
// 一瞬後にtrueにしてclose
unawaited(
Future.microtask(
() => controller
..add(true)
..close(),
),
);
// concatEagerにすると、expectはtrueになる(上でaddしたtrueが捕捉される)
final v = await Rx.concat([
Stream.value(false),
// concatだと、購読直前に上でaddしたtrueが先に流れてしまい捕捉されない
controller.stream,
]).last;
expect(
v,
false, // concatEager・mergeだとtrue
);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment