Upgrade to Pro — share decks privately, control downloads, hide ads and more …

UIテストにおけるRxIdlerが便利だった話

 UIテストにおけるRxIdlerが便利だった話

AndroidでUIテストをするときの悩みとしてアサーション前に非同期処理を待ってくれないことがあります。RxIdlerを使うとRxJavaにおける非同期処理もいい感じに待ってくれます。

yu mitsuhori

July 26, 2018
Tweet

More Decks by yu mitsuhori

Other Decks in Programming

Transcript

  1. 軽く自己紹介 軽く自己紹介 三堀 裕 株式会社エムティーアイ所属 社会人2 年目 Android アプリエンジニア 外部LT

    初登壇( 汗) Twitter: @1013Youmeee Qiita: GitHub: https://qiita.com/youmeee https://github.com/youmitsu
  2. 具体例 具体例 @Test fun testNotWaitFailed() { /** * API */

    // onView(allOf(withId(R.id.data_str), isDisplayed())) .check(matches(withText("completed"))) }
  3. 主な解決策3 つ 主な解決策3 つ 1. sleep を使って待つパターン 2. 反映されるまでリトライするラッパークラスを作る パターン

    3. UI の状態で判断するパターン(IdlingResources) Idling Resources についてはこちらを参照
  4. コード例 コード例 が付いているメソッド内でRxJavaPlugins を 使って、RxIdler のスケジューラを定義するだけ @Before fun setUp() {

    // //RxJava Scheduler (Schedulers.io RxJavaPlugins.setInitIoSchedulerHandler( Rx2Idler.create("RxJava 2.x Io Scheduler") ) }