REST确保JSON模式验证无效

时间:2015-10-29 21:05:44

标签: java maven spring-boot rest-assured json-schema-validator

我正在使用Spring Boot和REST Assured来测试REST API。我正在尝试使用JSON模式验证,但它会抛出此错误:

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

根据文档,架构应为located in the classpath。我的示例架构位于那里。这是我的项目结构和示例模式位置:

project structure

这是我的代码。没有架构验证,它可以正常工作。

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

2 个答案:

答案 0 :(得分:6)

您的架构文件位于rest.resource包中,但在调用matchesJsonSchemaInClasspath时您没有提及。您需要将文件移动到类路径的根目录(例如,将其放在src/test/resources中),或者将您传递的字符串更改为matchesJsonSchemaInClasspath

答案 1 :(得分:0)

当你执行你的测试用例时,你完整的 src/test 文件夹会被编译,并且它将所有编译的文件存储在 target/test-classes 文件中,所以在你的情况下,当你将 json 文件保存在 src/test/resources 中时,将在 target/test-classes 文件夹中创建该文件的副本,并且匹配 JsonSchemaInClasspath 方法在执行时使用该文件(您可以在测试执行后转到 target/test-classes 文件夹进行验证)。