Skip to content

sumio/RxJavaEspressoSample

Repository files navigation

RxJavaEspressoSample

Samples of Espresso synchronizing with RxJava

Rx Ja Night Vol.2のトーク「RxJavaの非同期処理に負けないEspressoテストコードを書く」のサンプルコードです。

Contents

Activity Under Tests

RxJava1Activity

画面上にDebounceボタンとSleep in Map Op.ボタンが表示されています。RxJava1で実装しています。

  • Debounceボタンを最後に押してから3秒経過すると、ボタンの右側にDebounce Completedというテキストが表示されます。 クリックイベントのストリームに対して、debounce(3, TimeUnit.SECONDS)を適用することで実現しています。
  • Sleep in Map Op.ボタンを押してから3秒経過すると、ボタンの右側にSleep Completedというテキストが表示されます。 クリックイベントのストリームに対して、map()オペレーター内で3秒スリープすることで実現しています。

RxJava2Activity

RxJava2で実装していることを除いては、RxJava1Activityと同じです。

Instrumented Tests

Package jp.jun_nama.rxjavaespressosample.rxjava1

ActivityCountingIdlingResourceTest

RxJava1Activityに対するテストを、Espressoを使って書いています。 具体的なテスト内容は以下の通りです。

  • Debounceボタンを押してしばらくしたらDebounce Completedというテキストが表示されること
  • Sleep in Map Op.ボタンを押してしばらくしたらSleep Completedというテキストが表示されること

RxJavaの非同期処理の完了を待ち合わせる方法として、Rx Ja Night Vol.2で紹介した内容を採用しています。

ActivityAsyncTaskExecutorTest

以下の点を除いて、ActivityCountingIdlingResourceTestと同じです。

  • RxJavaのスケジューラをAsyncTask.THREAD_POOL_EXECUTORに置き換えることで、RxJavaの非同期処理の完了を待ち合わせています。

Package jp.jun_nama.rxjavaespressosample.rxjava2

RxJava2Activityに対するテストをしている点を除いて、 jp.jun_nama.rxjavaespressosample.rxjava1パッケージ配下のテストと同じです。

License

Copyright 2017 TOYAMA Sumio <jun.nama@gmail.com>
Licensed under the Apache License, Version 2.0.

About

Samples of Espresso synchronizing with RxJava

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages