RxJava2へ移行時のUnitTest
RxJava1 から2へ移行すると、TestSubscriberがうまく使えなくなった。
代わりにObservar.test()というメソッドが追加された。
RxJava1
public void test(){ //... TestSubscriber<UserResult> testSubscriber = TestSubscriber.create(); repository.getUser().subscribe(testSubscriber); testSubscriber.awaitTerminalEvent(); testSubscriber.assertCompleted(); UserResult result = testSubscriber.getOnNextEvents().get(0); assertEquals(result.getName(), "田中"); assertEquals(result.getAge(), 13); //... }
RxJava2
public void test(){ //... UserResult result = repository .getUser() .test() .assertComplete() .assertValueCount(1) .values().get(0); assertEquals(result.getName(), "田中"); assertEquals(result.getAge(), 13); //... }
メソッドチェーンで記述できることで、型指定の煩わしさが少なくなる。