Тип содержимого ответа был 'null'.Будьте уверены, исключение - PullRequest
0 голосов
/ 30 мая 2018

У меня проблема с уверенностью.Я получаю следующую ошибку

java.lang.IllegalStateException: Cannot parse object because no supported Content-Type was specified in response. Content-Type was 'null'.

Мой контроллер покоя выглядит так, как показано ниже

@Slf4j
@RestController
@RequestMapping(ApiUrls.SESSIONS_API)
@RequiredArgsConstructor
public class SessionsApi {

    private final SessionsService sessionsService;

    @GetMapping(produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public List<SessionDto> sessions(@AuthenticationPrincipal CryptoUser user,
                                     @RequestParam(required = false, defaultValue = "false") boolean includeExpired) {
        log.info("User sessions of user [id {} username {}]", user.getUserId(), user.getUsername());


        return sessionsService.getSessionsOfUser(user, includeExpired);
    }

, а тест

SessionDto[] sessionDtos = given().mockMvc(mvc)
        .log().all()
        .header("Accept","application/json")
        .get(ApiUrls.SESSIONS_API)
        .then()
        .extract()
        .as(SessionDto[].class);

- это уверенные логи, которые я получаю

Request method: GET
Request URI:    http://localhost:8080/api/sessions?includeExpired=true
Proxy:          <none>
Request params: includeExpired=true
Query params:   <none>
Form params:    <none>
Path params:    <none>
Headers:        Content-Type=application/json
                Accept=application/json
Cookies:        <none>
Multiparts:     <none>
Body:           <none>

Я попытался добавить продуц = MediaType.APPLICATION_JSON_VALUE в getmapping, но в любом случае это не сработало.Я что-то пропустил ?Поток даже не входит в метод контроллера

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

Если ваш тип контента пуст, вы можете попробовать что-то вроде этого

given().mockMvc(mvc)
    .log().all()
    .header("Accept","application/json")
    .get(ApiUrls.SESSIONS_API)
    .then()
    .contentType(isEmptyOrNullString())//This is where you handle null
    .extract()
    .as(SessionDto[].class);

Также эта ссылка может быть полезной: https://github.com/rest-assured/rest-assured/issues/636

0 голосов
/ 30 мая 2018

Добавить производит = MediaType.APPLICATION_JSON_UTF8_VALUE в @ RequestMapping вместо @GetMapping.

Заменить

 @RequestMapping(ApiUrls.SESSIONS_API)

С

@RequestMapping(value = ApiUrls.SESSIONS_API, produces = {
    MediaType.APPLICATION_JSON_VALUE })
...