Тест интеграции Spring-boot, установить атрибут запроса для TestRestTemplate - PullRequest
0 голосов
/ 10 сентября 2018

Я устанавливаю атрибут запроса с именем Id в методе с префиксом RequestHandlerInterceptor.Я получаю этот идентификатор из токена jwt.

 protected UserContext getCurrentUserContext() {
        return UserContextHolder.getCurrentContext();
 }

 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws AuthenticationException {
        UserProfile userProfile = null;
        try {
            UserContext userContext = getCurrentUserContext();
            userProfile = userContext.getUserProfile();         
            request.setAttribute("Id", String.valueOf(userProfile.getId()));
            return true;
        }

, используя @RequestAttribute в методе моего контроллера для получения этого атрибута.

@DeleteMapping("/{id}")
public void delete(@PathVariable Long id, @RequestAttribute("Id") String userId) throws EntityNotFoundException, ApiException {
        excessService.deleteExcess(id, userId); 
}

Но мои интеграционные тесты не пройдены, хотя я переопределилthis RequestHandlerInterceptor.

    requestHandlerInterceptor = new RequestHandlerInterceptor() {
        @Override
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws AuthenticationException {
            request.setAttribute("Id", "123456");
            return true;
        }
    } 

Как можно смоделировать этот атрибут запроса в интеграционном тесте, чтобы передать это значение 'id' в методы моего контроллера?

...