Как я могу использовать Argument Captor при вызове частного метода? - PullRequest
0 голосов
/ 27 мая 2020

Как я могу использовать Argument Captor при вызове частного метода?

У меня есть контроллер, как показано ниже:

// The controller
public ResponseEntity<AObject> getConfig(
        @PathVariable AService service, @PathVariable String id
    ) {
        String returnData = privateMethod(id, service);
        return ResponseEntity.ok(URLEncoder.encode(returnData, UTF-8););
      }

// The private method
private String privateMethod(String id, AService service) {
    //do something and return
}

И мой тест выглядит следующим образом:

 String id = String.valueOf(faker.random().nextLong());
        AService service = AService.BOOKING;
        mockMvc.perform(get(END_POINT + "/appointment/{service}/{appointmentId}", service, id))
                .andExpect(status().isOk());

Итак, я хочу подтвердить, что параметры (service, id) были переданы именно частному методу!

В другом случае, когда используется служба, я могу использовать ArgumentCaptor и утверждать, что: т.е.

ArgumentCaptor<Long> idArgumentCaptor = ArgumentCaptor.forclass(Long.class)
Long id = faker.random().nextLong();
...
Mockito.when(bService.load(idArgumentCaptor.capture())).thenReturn(dataReturn);
...
mockMvc.perform(get(END_POINT + "/{id}", id)).andExpect(status().isOk());;
...
Assertions.assertThat(id).isEqualTo(idArgumentCaptor.getValue());

А вот с приватным методом не могу! Не могли бы вы мне помочь! Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...