Я строю микросервис с помощью Micronaut.Этот конкретный сервис зависит от автоматически сгенерированного клиента из другого сервиса, который я хотел бы смоделировать в своих тестах компонентов.
Однако я не могу смоделировать один из методов apiClient.это выглядит так:
Single<? extends HttpResponse> patchProfile(String userId, UserprofileApiEntity userProfile);
, где HttpResponse
из пакета io.micronaut.http
, а Single
из пакета io.reactivex
В моем тесте япытаясь смоделировать эту конечную точку следующим образом:
when(userProfileClientMock.patchProfile(userIdCaptor.capture(), profileCaptor.capture())).thenReturn(Single.just(HttpResponse.ok()));
однако я получаю ошибку
error: no suitable method found for thenReturn(Single<CAP#1>)
when(userProfileClientMock.patchProfile(userIdCaptor.capture(), profileCaptor.capture())).thenReturn(response);
^
method OngoingStubbing.thenReturn(Single<CAP#2>) is not applicable
(argument mismatch; Single<CAP#1> cannot be converted to Single<CAP#2>)
method OngoingStubbing.thenReturn(Single<CAP#2>,Single<CAP#2>...) is not applicable
(argument mismatch; Single<CAP#1> cannot be converted to Single<CAP#2>)
where CAP#1,CAP#2 are fresh type-variables:
CAP#1 extends HttpResponse from capture of ? extends HttpResponse
CAP#2 extends HttpResponse from capture of ? extends HttpResponse
Note: /home/anders/Documents/minecraft/minecraft.api.public.displaynames/minecraft.api.public.displaynames.server/src/test/java/net/minecraft/api/pub/displaynames/DisplaynamesApiTest.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 error
из того, что я понял, что-то связано с частью <? extends . . .>
подпись, я успешно смоделировал различные методы от похожих апиклиентов, возвращая такие вещи, как Single<Foo>
или Maybe<Bar>
, к сожалению, в этом случае нет смысла изменять подпись клиента.
Я пытался указатьответ единственная в качестве переменной, в явном виде набирая ее как Single<? extends HttpResponse>
и Single<MutableHttpResponse>
, думая, что, возможно, mockito каким-то образом путают стирание типа, но безрезультатно.
любые идеи, которые могут быть причиной этогои как обойти это?