Micronaut: обработчик исключений не вызывается при выполнении тестов Mockito - PullRequest
0 голосов
/ 23 марта 2020

Когда я создаю случай, когда код вызывает исключение, вызывая API, в это время ExceptionHandler вызывается, как и ожидалось. Но когда я пытаюсь создать тот же случай с помощью модульных тестов, ExceptionHandler не вызывается. Мои классы следующие:

Контроллер. java

@Post("/XXX")
public ResponseEntity<List<CategoryTopicBean>> listCategoryTopics(@Body CategoryIdsRequestBean categoryIdsRequestBean) {
    if (categoryIdsRequestBean.getCategoryIds().size() > MAX_ALLOWED_CATEGORY_SELECTION) {
        throw new CustomException(SystemConstants.ResponseCode.ERROR, SystemConstants.ResponseMessage.OVERFLOW_MAX_CATEGORIES);
    }
    ...

CustomExceptionHandler. java:

@Produces
@Singleton
@Requires(classes = {CustomException.class, ExceptionHandler.class})
public class CustomExceptionHandler implements ExceptionHandler<CustomException, HttpResponse> {

    @Override
    public HttpResponse handle(HttpRequest request, CustomException exception) {
        return HttpResponse.ok(new ResponseEntity<>(exception.responseCode, exception.getMessage()));
    }
}

XXXShould. java

@Test
public void should_list_category_topics() {
    CategoryIdsRequestBean categoryIdsBean = new CategoryIdsRequestBean();
    IdBean idBean = new IdBean();
    idBean.setId(ID_1);
    categoryIdsBean.setCategoryIds(Arrays.asList(idBean));

    ResponseEntity<List<CategoryTopicBean>> responseEntity = topicController.listCategoryTopics(categoryIdsBean);
    assertThat(SystemConstants.ResponseCode.SUCCESS).isEqualTo(responseEntity.getResponseCode());
    assertThat(1).isEqualTo(responseEntity.getData().size());

    categoryIdsBean = new CategoryIdsRequestBean();
    categoryIdsBean.setCategoryIds(Arrays.asList(idBean, idBean, idBean, idBean, idBean, idBean));
    responseEntity = topicController.listCategoryTopics(categoryIdsBean);
}

Может кто-нибудь, пожалуйста, посмотрите на это и помогите мне?

...