6

我正在使用 Spring Boot 和 REST Assured 来测试 REST API。我正在尝试使用 JSON 模式验证的示例,但它抛出了这个错误:

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

根据文档,架构应该位于 classpath 中。我的示例架构位于那里。这是我的项目结构和示例架构位置:

项目结构

这是我的代码。如果没有模式验证,它可以正常工作。

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

2 回答 2

9

您的架构文件在rest.resource包中,但在调用matchesJsonSchemaInClasspath. 您要么需要将文件移动到类路径的根目录(src/test/resources例如,将其放入matchesJsonSchemaInClasspath.

于 2015-10-29T22:03:06.040 回答
0

当您执行测试用例时,您的完整 src/test 文件夹将被编译,并将所有已编译的文件存储在 target/test-classes 文件中,因此在您将 json 文件保存在 src/test/resources 中时,该文件将在 target/test-classes 文件夹中创建,matchesJsonSchemaInClasspath 方法在执行时使用该文件(您可以在测试执行后转到 target/test-classes 文件夹进行验证)。

于 2021-06-21T16:11:38.287 回答