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
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
不幸な GC
chencmd
0
890
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
880
Deep dive into the select statement (GopherCon UK)
jespino
0
170
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
510
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
140
アクセシビリティから考える情報設計
high_g_engineer
0
310
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
470
自分的「カンファレンスの楽しみ方」
syumai
0
200
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
120
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
870
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
340
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
310
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
290
Building Applications with DynamoDB
mza
96
7.2k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
980
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
370
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Optimizing for Happiness
mojombo
378
71k
Producing Creativity
orderedlist
PRO
348
41k
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