Написание тестовых случаев для WebClient с использованием MockWebServer в Kotlin - PullRequest
0 голосов
/ 25 апреля 2020

Интерфейс

public interface Sample {
   Mono<SimpleResponseDto> callApi();
}

Мой Java Реализация класса

class SampleImp implements Sample {

    private WebClient webClient;

    ApiCaller(WebClient webClient) {
        this.webClient = webClient;
    }

    @Override
    Mono<SimpleResponseDto> callApi() {
        return webClient.put()
                .uri("/api/resource")
                .contentType(MediaType.APPLICATION_JSON)
                .header("Authorization", "customAuth")
                .syncBody(new SimpleRequestDto())
                .retrieve()
                .bodyToMono(SimpleResponseDto.class);
    }
}

Я хочу написать пример модульного теста в kotlin с использованием MockWebServer. Я проверил net и обнаружил , что может мне помочь. Но здесь, в моем случае, я внедряю Sample интерфейс в SamleImp.java. Поскольку я не могу создать объект для интерфейса, я не могу следовать этому примеру

В соответствии с примером ApiCaller является классом java, следовательно, они могут делать WebClient.create(mockWebServer.url("/").toString()). Но в моем случае мне нужно вызвать callApi() метод через Service интерфейс

private final ApiCaller apiCaller = new ApiCaller(WebClient.create(mockWebServer.url("/").toString()));
...