Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
rx-ja-night-2016-1
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Yuya Kaido
February 24, 2016
Programming
920
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
rx-ja-night-2016-1
Yuya Kaido
February 24, 2016
More Decks by Yuya Kaido
See All by Yuya Kaido
droidkaigi-2019
yuyakaido
7
4.9k
matching-dev-meetup-1
yuyakaido
1
240
minami-aoyama-night-6
yuyakaido
1
1.3k
eureka-meetup-10
yuyakaido
0
850
droidkaigi-2018
yuyakaido
4
6.2k
navitime-eureka-1
yuyakaido
0
110
droidkaigi-2017
yuyakaido
11
8.4k
retty-tech-cafe-8
yuyakaido
0
210
mti-eureka-tech-beer
yuyakaido
0
510
Other Decks in Programming
See All in Programming
OpenSpecのproposalにbrainstormingを持たせてみた
tigertora7571
1
210
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
140
仕様駆動開発の消費期限
watany
16
7k
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
3.5k
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
590
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
530
メールのエイリアス機能を履き違えない
isshinfunada
0
220
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
460
言葉の格闘技のススメ~紙とペンと言葉から始める、キャリアの描き方~
progresscicada
2
140
プロポーザルを書いてもらう
pvcresin
0
280
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.2k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
200
Technical Leadership for Architectural Decision Making
baasie
3
470
What does AI have to do with Human Rights?
axbom
PRO
1
2.3k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
240
Writing Fast Ruby
sferik
630
63k
RailsConf 2023
tenderlove
30
1.5k
Navigating Team Friction
lara
192
16k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
480
My Coaching Mixtape
mlcsv
0
200
Designing Experiences People Love
moore
143
24k
Transcript
TestSubscriber Rx Ja Night 2016 #1 yuyakaido
Observableͷςετ ॻ͍ͯ·͔͢ʁ
ࣗݾհ • ւ౻༏ʢ͔͍Ͳ͏Ώ͏ʣ • גࣜձࣾΤϨΧ • ςετॻ͚ॻ͚͓͡͞Μ • Android
yuyakaido yuyakaido
גࣜձࣾΤϨΧ • ࣗࣾαʔϏεͷاըɾ։ൃɾӡӦ • ΦϯϥΠϯσʔςΟϯάαʔϏεɿ • Χοϓϧઐ༻ΞϓϦɿ • ࣾһɿ90໊ •
IAC ΤϯδχΞ 60 ඇΤϯδχΞ 30
Observableͷςετ
Integer[] actual = new Integer[] {1, 2, 3}; Observable<Integer> observable
= Observable.from(actual); final List<Integer> expect = new ArrayList<>(actual.length); observable.subscribe(new Subscriber<Integer>() { @Override public void onCompleted() {} @Override public void onError(Throwable e) {} @Override public void onNext(Integer integer) { expect.add(integer); } }); for (int i = 0, size = expect.size(); i < size; i++) { assertThat(expect.get(i), is(actual[i])); }
Integer[] actual = new Integer[] {1, 2, 3}; Observable<Integer> observable
= Observable.from(actual); final List<Integer> expect = new ArrayList<>(actual.length); observable.subscribe(new Subscriber<Integer>() { @Override public void onCompleted() {} @Override public void onError(Throwable e) {} @Override public void onNext(Integer integer) { expect.add(integer); } }); for (int i = 0, size = expect.size(); i < size; i++) { assertThat(expect.get(i), is(actual[i])); }
Integer[] actual = new Integer[] {1, 2, 3}; Observable<Integer> observable
= Observable.from(actual); final List<Integer> expect = new ArrayList<>(actual.length); observable.subscribe(new Subscriber<Integer>() { @Override public void onCompleted() {} @Override public void onError(Throwable e) {} @Override public void onNext(Integer integer) { expect.add(integer); } }); for (int i = 0, size = expect.size(); i < size; i++) { assertThat(expect.get(i), is(actual[i])); }
Integer[] actual = new Integer[] {1, 2, 3}; Observable<Integer> observable
= Observable.from(actual); final List<Integer> expect = new ArrayList<>(actual.length); observable.subscribe(new Subscriber<Integer>() { @Override public void onCompleted() {} @Override public void onError(Throwable e) {} @Override public void onNext(Integer integer) { expect.add(integer); } }); for (int i = 0, size = expect.size(); i < size; i++) { assertThat(expect.get(i), is(actual[i])); }
• onError() • onCompleted() • ඇಉظ
Integer[] actual = new Integer[] {1, 2, 3}; Observable<Integer> observable
= Observable.from(actual); final List<Integer> expect = new ArrayList<>(actual.length); observable.subscribe(new Subscriber<Integer>() { @Override public void onCompleted() {} @Override public void onError(Throwable e) {} @Override public void onNext(Integer integer) { expect.add(integer); throw new RuntimeException(); } }); for (int i = 0, size = expect.size(); i < size; i++) { assertThat(expect.get(i), is(actual[i])); }
Integer[] actual = new Integer[] {1, 2, 3}; Observable<Integer> observable
= Observable.from(actual); final List<Integer> expect = new ArrayList<>(actual.length); observable.subscribe(new Subscriber<Integer>() { @Override public void onCompleted() {} @Override public void onError(Throwable e) {} @Override public void onNext(Integer integer) { expect.add(integer); throw new RuntimeException(); } }); for (int i = 0, size = expect.size(); i < size; i++) { assertThat(expect.get(i), is(actual[i])); }
TestSubscriber
TestSubscriber Integer[] integers = new Integer[] {1, 2, 3}; Observable<Integer>
observable = Observable.from(integers); TestSubscriber<Integer> testSubscriber = new TestSubscriber<>(); observable.subscribe(testSubscriber); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(integers.length); testSubscriber.assertValues(integers); testSubscriber.assertCompleted();
TestSubscriber Integer[] integers = new Integer[] {1, 2, 3}; Observable<Integer>
observable = Observable.from(integers); TestSubscriber<Integer> testSubscriber = new TestSubscriber<>(); observable.subscribe(testSubscriber); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(integers.length); testSubscriber.assertValues(integers); testSubscriber.assertCompleted();
TestSubscriber Integer[] integers = new Integer[] {1, 2, 3}; Observable<Integer>
observable = Observable.from(integers); TestSubscriber<Integer> testSubscriber = new TestSubscriber<>(); observable.subscribe(testSubscriber); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(integers.length); testSubscriber.assertValues(integers); testSubscriber.assertCompleted();
TestSubscriber Integer[] integers = new Integer[] {1, 2, 3}; Observable<Integer>
observable = Observable.from(integers); TestSubscriber<Integer> testSubscriber = new TestSubscriber<>(); observable.subscribe(testSubscriber); testSubscriber.assertNoErrors(); testSubscriber.assertValueCount(integers.length); testSubscriber.assertValues(integers); testSubscriber.assertCompleted();
TestSubscriber • assert http://reactivex.io/RxJava/javadoc/rx/observers/TestSubscriber.html
TestSubscriber • assert http://reactivex.io/RxJava/javadoc/rx/observers/TestSubscriber.html
TestSubscriber • ඇಉظ http://reactivex.io/RxJava/javadoc/rx/observers/TestSubscriber.html
TestSubscriber • Πϕϯτऔಘ http://reactivex.io/RxJava/javadoc/rx/observers/TestSubscriber.html
Observableͷςετ ॻ͖·͠ΐ͏ʂʂ
Thank you :) Credit: NASA Earth Observatory/NOAA NGDC