Как применить проверку схемы JSON к ответу на сообщение? - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь написать пример кода с помощью Citrus Framework.Будучи моей первой попыткой, я не могу проверить схему JSON для ответного сообщения.

Я добавил репозиторий схемы в файл citrus-context.xml, но не знаю, как использовать это с кодом Java.

Файл Citrus-Context *

<citrus:schema-repository id="schemaRepository" type="json">
        <citrus:schemas>
            <citrus:schema id="petCreation" location="classpath:org/logica/citrus/samples/PetCreationJSONSchema.json"/>
        </citrus:schemas>
</citrus:schema-repository>

Файл Java

@CitrusTest
    public void end2endTest()
    {
        http().client(restClient).send().post("/pet").contentType("application/json").payload(new ClassPathResource("org\\logica\\citrus\\samples\\PetJSONCreation.json"));

        http().client(restClient).receive().response(HttpStatus.OK).messageType(MessageType.JSON);
    }

Где применять код проверки схемы при работе с JSON

1 Ответ

0 голосов
/ 28 мая 2019

Как только схема Json становится доступной в репозитории схемы, проверка выполняется автоматически при обработке входящего сообщения в действии receive.

Единственное, что вам нужно сделать, это указать имя схемы наreceive, который вы хотели бы использовать для проверки.

http().client(restClient)
      .receive()
      .response(HttpStatus.OK)
      .messageType(MessageType.JSON)
      .jsonSchema("petCreation");

С помощью схемы XML Citrus может автоматически выбирать правильную схему из хранилища по его пространству имен.В Json у нас нет чего-то похожего на пространства имен, поэтому вам нужно явно указать имя схемы.

...