Java JSON模式验证不起作用,请放心

Java JSON模式验证不起作用,请放心,java,maven,spring-boot,rest-assured,json-schema-validator,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 根据文档,模式应该是。我的示例模式位于那里。以下是我的项目结构和示例架构位置: 这是我的密码。没有模式验证,它就可以正常工作 given(). contentType("application/json"). when()

我正在使用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"));

您的架构文件位于
rest.resource
包中,但在调用
matchesJsonSchemaInClasspath
时,您没有提到这一点。您需要将文件移动到类路径的根目录下(例如,将其放入
src/test/resources
),或者在执行测试用例时更改传递到
matchesJsonSchemaInClasspath

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

谢谢,但我不明白,您的意思是复制路径?`matchesJsonSchemaInClasspath(“/src/test/java/rest/resource/asset_schema.json”)否,保留对
matchesJsonSchmeaInClasspath
的调用,并将文件移动到
src/test/resources
src/test/java
中。