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

Программисты JAVA общаются здесь
Anonymous
Добавление нового 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 ... how-to-fix

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