Spring Boot: добавление нового HandlerInterceptor приводит к сбою многих существующих тестов — как это исправить или изоJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Spring Boot: добавление нового HandlerInterceptor приводит к сбою многих существующих тестов — как это исправить или изо

Сообщение Anonymous »

У меня есть большое приложение Spring Boot с обширным набором тестов (модульные тесты + тесты контроллера).
После введения нового HandlerInterceptor многие из моих предыдущих тестов внезапно начали давать сбой. Большинство этих тестов не были написаны с учетом перехватчиков, и теперь логика перехватчика выполняется почти для каждого запроса внутри тестов.
Я ищу руководство о том, как исправить или изолировать перехватчик для тестов и какой рекомендуемый подход:
  • Следует ли отключать перехватчик в определенных тестах?
  • Должен ли я издеваться над службой, от которой зависит перехватчик?
  • Должен ли я обновлять каждый тест для учета перехватчика?
  • Есть ли способ автоматически исключить его в настройках MockMvc/WebMvcTest?
    Ниже приведен упрощенный пример конфигурации и перехватчика. (Имена изменены.)

    Код: Выделить всё

    @Configuration
    @RequiredArgsConstructor
    public class DemoPathConfig implements WebMvcConfigurer {
    
    private final DemoAccessInterceptor demoAccessInterceptor;
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(demoAccessInterceptor)
    .addPathPatterns("/api/internal/**");
    }
    }
    
    

    Код: Выделить всё

    @Component
    @RequiredArgsConstructor
    @Slf4j
    public class DemoAccessInterceptor implements HandlerInterceptor {
    
    private final DemoCheckService demoCheckService;
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
    if (HttpMethod.OPTIONS.matches(request.getMethod())) {
    return true;
    }
    
    demoCheckService.validateAccess();
    return true;
    }
    }
    
    
    Как лучше всего справиться с внезапными сбоями тестов после добавления перехватчика?
    Меня особенно интересуют стратегии, используемые в больших базах кода, такие как глобальное отключение перехватчиков для тестов, условная регистрация или трюки с настройкой MockMvc/WebMvcTest.


Подробнее здесь: https://stackoverflow.com/questions/798 ... ts-to-fail
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»