Как проверить RequestHeader для конечной точки контроллера RestAPI - PullRequest
0 голосов
/ 18 октября 2018

Я написал класс контроллера с конечной точкой, которая принимает заголовок как часть своего запроса

@RestController
@RequestMapping("<mapping-path>")
public class MyController {
...
@GetMapping("<path-to-the-endpoint>")
public MyObject getMyObject(@RequestHeader("headerName") String headerName) {
    //do something with the header here
}
...
}

Конечная точка работает нормально, но я хотел бы проверить ее поведение, когда заголовок спредоставлено нулевое значение.Я также хотел бы закодировать метод getMyObject таким образом, чтобы он предотвращал передачу пустых значений в заголовок и возвращал предупреждение о том, что поле заголовка не может быть пустым.Я попытался проверить это с помощью интеграционного теста с MockMvc get() на конечной точке, но если я предоставлю нулевое значение заголовку как часть этого запроса get, тест завершится неудачей, так как он говорит: «значения не могут быть пустыми»,Можно ли здесь использовать методы проверки JSR-303?т.е. @Valid и @NotNull?

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, что параметризованный заголовок запроса должен работать для вас.

Попробуйте объявить ваш метод следующим образом.

@GetMapping("<path-to-the-endpoint>")
public MyObject getMyObject(@RequestHeader(value="headerName") String headerName) {
    //do something with the header here
}

Чтобы проверить это, вы можете добавить заголовок в свой MockMvc.

post("/your end point").header("headerName", "userId")
...