0
Observable<Void>
を返すヘルパーライブラリメソッドを呼び出すメソッドをテストしており、完了するとロジックがflatMap
で実行され、Observable<SomeObject>
を返すAPIエンドポイントが呼び出されます。RxJava Mockito - 解決済みの観察可能なものを返す
問題は、私のテストではflatMapに到達することがないということです。
:ここ@Mock private RequestHelperSourceImpl requestHelper;
@Mock private OrdersRepositoryImpl repository;
// setup & teardown code…
@Test
public void shouldSingleOrder() {
SingleOrder singleOrder = mock(SingleOrder.class);
TestSubscriber<SingleOrder> testSubscriber = new TestSubscriber<>();
when(requestHelper.doJwtRequest(anyString())).thenReturn(Observable.just(null));
when(repository.getOrder(anyLong(), anyString(), anyString(), anyInt())).thenReturn(Observable.just(singleOrder));
// The method I'm testing
spySubject.getOrder(anyInt(), anyString());
testSubscriber.assertValue(singleOrder);
}
は私が
@Override
public Observable<SingleOrder> getOrder(long orderId, String jwtToken) {
return requestHelper.doJwtRequest(jwtToken)
.flatMap(Void -> {
////////<------ It never gets here
return repository.getOrder(
orderId,
requestHelper.getAccessToken(),
jwtToken,
jtApp.isTryoutInt()
).compose(JTRxUtils.applySchedulers());
});
}
のテストだと、ここdoJwtRequest
Observable<Void> doJwtRequest(String jwt);
ための署名はここでテストを実行しているときに私が取得エラーだだメソッドのコードです
java.lang.AssertionError: Number of items does not match. Provided: 1 Actual: 0.
Provided values: [singleOrder]
Actual values: []
(0 completions)
私は忘れて馬鹿だと思う。ありがとう –