Rx Ja Night Vol.2 で発表予定の「RxJavaの非同期処理に負けないEspressoテストコードを書く」の発表資料です。 サンプルコードは https://github.com/sumio/RxJavaEspressoSample で公開しています。
この記事について この記事は、以下のような人に役立ちます。つまり、私のことです。 - RxJava2を使っている - ObservableやFlowableを返すメソッドのテストを書きたい - TestObserverやTestSubscriberを使っていなかった 今まで書いていたObservableのテストが失敗しなくなったので、原因と対策を調べてみました。結論としては、TestObserverやTestSubscriberを使いましょうという話です。 前提 RxJava 2.1.0 を利用 テスティングフレームワークは Junit 4.12 ラムダ式(Retrolambda)を利用 失敗してくれないテスト まずは、興味深い例を紹介します。 @Test public void test() throws Exception { Observable.just(1).subscribe(
この記事はRxJava Advent Calendar 2015 11日目の記事です。 RxJava・RxAndroidの紹介記事の中にはよく「面倒くさいASyncTaskを使わなくて済む」といったRxJavaを非同期処理の代わりとして紹介されています。 もちろん、非同期処理を置き換えられるという点はRxJavaの有効的な使い方の一つですが、RxJavaには他にも便利に使える機能があります。 今回はそれらの機能の一つであるSubjectについて紹介したいと思います。 Subjectとは 短く言うと「SubscriberとObservableの2つの機能を併せ持ったもの」です。 SubscriberにあるようなonNextやonError、onCompleteといったメソッドを呼び出せ、Observableのようにsubscribeメソッドを呼び出すことができます。 Subject<Stri
via Rob Wormald いいコトバですね。 Android アプリ開発では、事実上 stream is an (RxJava の) Observable<T>、 つまり Everything is an Observable<T> と言ってもいいでしょう。 ところで、 Android アプリ開発でも DataBinding の登場以来、MVVM パターンの話題が増えてきました。 Everything is a Observable<T>、では ViewModel はどうでしょう? public class MainViewModel { public final ObservableField<String> name = new ObservableField<>(); public final ObservableField<String> location = new Obs
これはRxJava Advent Calendar 2016の第12日目の記事です。 RxJavaは非同期処理を扱うライブラリですが、それ故にRxJavaのからむ単体テストは一筋縄でいかないところがあります。この記事と次の記事では、RxJavaでの非同期処理テスト特有の問題と、その解決方法を説明します。なお、基本的に RxJava 1.x を対象としていますが、必要に応じて RxJava 2.x についても触れます。 この記事の続編はこちらになります。 非同期処理の単体テストの難しさ 非同期処理の単体テストは一般に難しいものです。試しに以下のコードを実行してみましょう。 @Test public void testDoSomething() { new AsyncService().doSomething() .subscribe(s -> assertEquals("success",
先日、 JXUGC #9 Xamarin.Forms Mvvm 実装方法 Teachathon を開催しました - Xamarin 日本語情報 というイベントがありまして、エクセルソフトの田淵さんが作成したストップウォッチのアプリケーション(注:田淵さんはプログラマではないw)を、MVVM識者の方々が「MVVMとしてはこうあるべきだ」と叩きまくる、という恐ろしい?ものでした。 私はこの勉強会には参加できなかったのですが、ストリーミングとか見て、 僕もストップウォッチ作ってみるかー — ジェットあめいカスタム (@amay077) 2015, 12月 17 などとつぶやいたらご指名されてしまいました(^^) このイベントは Xamarin を使ったアプリ製作でしたが、せっかくなので RxJava + MVVM で作ってみました。 (ご指名に応えないといけないのでその後 Xamarin版も製作
この記事について 最近、SQLBriteというライブラリに触れ、データベースの変更がObservableとして購読できるということに感動しました。Githubのソースコードを見てみると、SQLBriteはたったの6ファイルで構成されていることがわかります。これなら読めるだろうと思ったので、ざっと目を通してみました。この記事では、SQLBriteのソースコードを読んでわかったSQLBriteがテーブル変更を通知する仕組みを説明します。 SQLBriteとは? 参考: - Githubリポジトリ: https://github.com/square/sqlbrite - 自分が書いた紹介記事: http://tech.furyu.jp/blog/?p=5233 SQLBriteとは、SQLiteOpenHelperとContentResolverをラップするSquare社製のライブラリです。S
この連載では、Javaでリアクティブプログラミングを行うためのライブラリである「RxJava」を使って、リアクティブプログラミングにおけるポイントや、RxJavaが持つ機能について学んでいきます。今回は、RxJavaおよびリアクティブプログラミングの概要について解説します。 対象読者 Java経験者(初心者可) RxJava未経験者 リアクティブプログラミング未経験者 RxJavaとは RxJavaは、Javaでリアクティブプログラミングを行うためのライブラリです。このライブラリは軽量であり、また、他のライブラリに対する依存がないのでRxJavaのjarをパスに通すだけで使えるようになります。対応しているJavaのバージョンは6からで、さらにAndroidもバージョン2.3(Gingerbread)からサポートしています。 そして、RxJavaは厳密には関数型リアクティブプログラミング(F
これは RxJava Advent Calendar 2015 の第22日目の記事です。昨日は kazy さんによる RxJava 2.xについて でした。 この記事では、 RxJava を理解するために自分が RxJava をどのように捉えているか、という話をします。なお、自分は ReactiveX や Reactive Functional Programming について詳しいわけではないので、その方面の理解の助けになるものではありません。どちらかといえば、RxJava という特定のライブラリをこう理解しておけば全体の挙動を把握しやすいのではないか、という生活の知恵のようなものになります。RxJS や他のライブラリではまた異なる実装かもしれませんのでご留意ください。 RxJava は非常に強力でよく考えられたものですが、ソースを見て挙動が直感的に分かるとは言えないライブラリです。本稿
RxJava Advent Calendar 2015 6日目の記事です。 私のように、「見よう見真似でRxJavaを使い始めてAsyncTaskとか潰せるし最高なんだけどぶっちゃけRxとかFRPとかよく分からないしObservableとかsubscribeとか言葉の意味もしっくり来ないし発展的な話も色々あるしどうすればいいの」って人が読んだ方が良さそうな記事を選んでみました。 色々言及しようとしたら長くなってしまったので、本記事は前編・基礎編です。 前提:RxJava, RxAndroid, ReactiveX, Rx, Reactive Extentions, FRPの違い こやつらの違いを知っておくと後が楽なので、ざっくりと見ておきます。 ReactiveX(後述)をJava (JVM)で使えるようにした物です。Netflix社製。 https://github.com/Reacti
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く