これは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",
![RxJava のテスト(1): TestSubscriber, test(), TestScheduler - hydrakecat’s blog](https://cdn-ak-scissors.b.st-hatena.com/image/square/26dec30ac7f1ba39a8adb657c979ba1941eae440/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fh%2Fhydrakecat%2F20161211%2F20161211234713.png)