Spring Boot - Ложные перехватчики - PullRequest
       62

Spring Boot - Ложные перехватчики

1 голос
/ 25 сентября 2019

У меня проблема при тестировании запроса на отдых.Однако тест перехватывается одним из моих перехватчиков.

Короче говоря, я хочу макетировать поведение перехватчиков, а не вызывать фактическую реализацию.

Для простоты, чтобы визуализировать проблему здесь просто запрос Get

@Controller
public class HiController {

    @ResponseBody
    @GetMapping(value = "/hi", produces = {"application/json"})
    public String hi() {
        return "hi";
    }
}

с простым перехватчиком и файлом конфигурации

@Component
public class LoggingInterceptor implements HandlerInterceptor {

    @Override
    public final boolean preHandle(HttpServletRequest request, final HttpServletResponse response, final Object handler) {
        System.out.println("Logging token interceptor");
        return true;
    }
}

@Component
public class InterceptorAppConfig implements WebMvcConfigurer {

    @Autowired
    private LoggingInterceptor loggingTokenInterceptor;

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loggingTokenInterceptor);
    }
}

целью теста было вызватьконечная точка покоя и макет перехватчика

@RunWith(SpringRunner.class)
@WebMvcTest(HiController.class)
public class HiControllerTest extends MvcTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    RestTemplate restTemplate;

    @Mock
    private HiController controller;

    private static final String AUTHENTICATE_USER = "/hi";

    @Test
    public void mandatoryFieldMissing() throws Exception {

        this.mockMvc.perform(get(AUTHENTICATE_USER))
                .andExpect(content().string(containsString("hi")))
                .andExpect(status().isOk());
    }
}

@RunWith(SpringRunner.class)
public abstract class MvcTest {

    @MockBean
    LoggingInterceptor loggingTokenInterceptor;
}

Когда я запускаю этот тест, ^ LoggingInterceptor все еще вызывается.

Как настроить тесты на использование имитирующих перехватчиков?

...