Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
rx-ja-night-2016-1
Search
Yuya Kaido
February 24, 2016
Programming
930
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
860
droidkaigi-2018
yuyakaido
4
6.3k
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
速習iPhone Duo対応
yuukiw00w
2
910
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
180
mrbgem 三角測量 開発
ogom
0
150
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
600
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
260
FreeBSDでZabbixを動かす
kenkino
0
340
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
4.4k
ソニーのクラウド共通基盤の変遷とAI時代の開発スタイルに合わせた進化 / The Journey of Sony’s Common Cloud Platform and Its Evolution for AI-Native Development
kenjiyoneyama
0
200
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.3k
そのリトライ、死んだコネクションを使い回していませんか ── GoのHTTPクライアントとHTTP/2を実プロダクト障害から学び直す
myus4a
0
340
Agents on Rails - Rails at Scale 2026
irinanazarova
0
300
KiroのSpecで「五目並べ」を作ってみる
satoshi256kbyte
1
320
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
560
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Designing for Performance
lara
611
70k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
340
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Utilizing Notion as your number one productivity tool
mfonobong
4
600
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
ラッコキーワード サービス紹介資料
rakko
1
5.1M
Become a Pro
speakerdeck
PRO
31
6.3k
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