У меня есть
public Single<APIResponse> getPayment(Identity identity, String id) {
return client.getPayment(identity, id).onErrorReturn(__ -> getTheSameEntityIfError(id));
}
client
- клиент веб-службы, который вызывает внешнюю службу. В случае любой ошибки, возвращенной из client.getPayment
, он будет вызывать getTheSameEntityIfError(id)
* 1008.* Я пытаюсь написать тестовый пример, чтобы охватить этот метод
@RunWith(MockitoJUnitRunner.class)
public class AdapterTest {
@Mock
PaymentsClient client;
@InjectMocks
Adapter adapter;
Identity identity = testIdentity();
PaymentEntity payment = testPayment();
@Test
public void getPayment() {
when(client.getPayment(any(), any())).thenThrow(new NotFoundException());
APIResponse apiResponse = adapter.getPayment(identity, "id").blockingGet();
assertThat(payment.getId(), equalTo(apiResponse.getId(1)));
}
}
В этом случае я хочу смоделировать, если внешняя служба client.getPayment()
возвращает ошибку, затем вызовите getTheSameEntityIfError(id)
.Я ожидаю, что будет вызвана операция onErrorReturn
, но она всегда выдает NotFoundException
, а onErrorReturn
никогда не вызывается.
Есть идеи, что не так?