Skip to content

Instantly share code, notes, and snippets.

@kuronekomichael
Created September 15, 2018 09:12
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 kuronekomichael/e2882e95325498ebdc6f4527f0cee98f to your computer and use it in GitHub Desktop.
Save kuronekomichael/e2882e95325498ebdc6f4527f0cee98f to your computer and use it in GitHub Desktop.
import 'package:rxdart/rxdart.dart';
import 'package:test/test.dart';
void main() {
test('ReplaySubjectのサンプル', () {
ReplaySubject<int> subject = new ReplaySubject<int>();
// 1, 2をStreamに流す。しかしこの時点ではListenerがいないので配信されない
subject.sink.add(1);
subject.sink.add(2);
// 期待値
final List<int> expected = [1, 2];
// 1, 2は流れてしまった後に、Listenerを追加。後からでも全て受け取ることができる
int calledCount1 = 0;
subject.listen(expectAsync1((int data) {
expect(data, expected[calledCount1++]);
}, count: 2));
// さらに別のListenerも追加。Broadcastなので、こちらでも受信できる
int calledCount2 = 0;
subject.listen(expectAsync1((int data) {
expect(data, expected[calledCount2++]);
}, count: 2));
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment