現在Android Studioにてユニットテストを書いています。
そこでAPIとの連携でTimeoutExceptionを発生させようと考えています。
タイムアウト等の例外が発生するとDBからデータを取得するようなものです。
現在のコードは以下のような感じになっています。
kotlin:SampleDataStore.kt
1class Sample @Inject constructor ( 2 private val sampleNet: SampleNet, 3 private val sampleDatabase: SampleDatabase 4) { 5 fun sampleEntity(sampleId: String): Observable<SampleEntity> { 6 return sampleNet.getEntity(sampleId) 7 .doOnNext { samplesEntity -> 8 sampleDatabase.update(samplesEntity) 9 } 10 .onErrorResumeNext { e -> 11 sampleDatabase.getEntity(sampleId) 12 } 13 } 14}
sampleEntity
メソッドをテスト対象にしており分岐網羅をするために行っております。
また、 .doOnNext
につきましては以下のようにするとテストができました。
もし間違っていれば合わせてご指摘頂ければと思います。
kotlin:SampleTest.kt
1@RunWith(AndroidJUnit4::class) 2class TitlesDataStoreTest() { 3 @Test 4 fun testSampleEntityDoOnNext() { 5 Assert.assertThat(samplesDataStore.sampleEntity(samplesEntity.sampleId).toBlocking().single(), instanceOf(SamplesEntity::class.java)) 6 } 7}
.onErrorResumeNext
を通らせるものに関して詳細にご説明くださると助かります。
また、当方はAndroid開発を始めたばかりなので可能であればサンプルコードをつけて頂ければ幸いです。
どうぞ、よろしくお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/09/21 04:31 編集