Нужна помощь в проверке метода ответа

У меня есть метод ответа, который мне нужно проверить, поэтому я включил условное выражение, но, тем не менее, я получаю ошибку сценария как «Несоответствие типов: невозможно преобразовать из HttpClientResponseActionBuilder в логическое значение»,

    if(http()
            .client(todoClient)
            .receive()
            .response(HttpStatus.OK).validate("$.statusCode", "200")) {
            For Report Purpose
      }
    else {
        For Report Purpose
    }

Есть ли лучший способ добиться того, что я ищу.

С уважением, БиДжей.


person Geek    schedule 27.09.2017    source источник


Ответы (1)


Ваш код не компилируется, потому что http() Java Fluent API здесь не возвращает значение boolean. Таким образом, вы не можете поместить это в оператор if здесь.

Вместо этого вы можете использовать conditional контейнеры тестовых действий. Я думаю о сохранении кода ответа статуса Http в тестовую переменную. Затем вы можете использовать несколько условных контейнеров на основе этого значения кода ответа.

http().client(todoClient)
        .receive()
        .response()
        .extractFromHeader(HttpMessageHeaders.HTTP_STATUS_CODE, "statusCode");

conditional()
    .when("${statusCode} = 200")
    .actions(echo("Everything OK!"));

conditional()
    .when("${statusCode} = 404")
    .actions(echo("NOT FOUND!"));
person Christoph Deppisch    schedule 04.10.2017