REST Assured с проверкой схемы JSON не работает

Я работаю с Spring Boot и REST Assured для тестирования REST API. Я пробовал пример с проверкой схемы JSON, но он выдает эту ошибку:

java.lang.IllegalArgumentException: Schema to use cannot be null

Согласно документации, схема должна быть в пути к классам. Схема моего примера находится там. Вот моя структура проекта и пример расположения схемы:

структура проекта

Вот мой код. Без проверки схемы все работает нормально.

given().
    contentType("application/json").
when().
    get("http://myExample/users").
then().
    assertThat().body(matchesJsonSchemaInClasspath("example_schema.json"));

person Zilev av    schedule 29.10.2015    source источник


Ответы (2)


Ваш файл схемы находится в пакете rest.resource, но вы не упомянули об этом при вызове matchesJsonSchemaInClasspath. Вам нужно либо переместить файл в корень пути к классам (например, поместить его в src/test/resources), либо изменить строку, которую вы передаете в matchesJsonSchemaInClasspath.

person Andy Wilkinson    schedule 29.10.2015
comment
спасибо, но я не понимаю, вы имеете в виду скопировать путь? - person Zilev av; 30.10.2015
comment
Нет, оставьте вызов matchesJsonSchmeaInClasspath как есть и переместите файл либо в src/test/resources, либо в src/test/java. - person Andy Wilkinson; 30.10.2015

Когда вы выполняете свои тестовые примеры, ваша полная папка src / test компилируется и хранит все скомпилированные файлы внутри файла target / test-classes, поэтому в вашем случае, когда вы сохранили свой json файл внутри src / test / resources, копию этот файл будет создан внутри папки target / test-classes и соответствует методу JsonSchemaInClasspath, который использует этот файл во время выполнения (вы можете проверить, перейдя в папку target / test-classes после выполнения теста).

person Chandresh kumar    schedule 21.06.2021