После введения нового 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
Мобильная версия