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.3k
retty-tech-cafe-8
yuyakaido
0
200
mti-eureka-tech-beer
yuyakaido
0
510
Other Decks in Programming
See All in Programming
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
390
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
340
yield再入門 #phpcon
o0h
PRO
0
630
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
150
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
990
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
290
共通化で考えるべきは、実装より公開する型だった
codeegg
0
260
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
160
AI 輔助遺留系統現代化的經驗分享
jame2408
1
1.2k
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
170
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
230
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
240
Rails Girls Zürich Keynote
gr2m
96
14k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.4k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
400
Utilizing Notion as your number one productivity tool
mfonobong
4
440
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6k
Un-Boring Meetings
codingconduct
0
350
Mobile First: as difficult as doing things right
swwweet
225
10k
The Limits of Empathy - UXLibs8
cassininazir
1
520
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.9k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
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