我正在使用Rest Assured api开发Json Schema Valdation。我从Web服务获得Json响应并使用此模式验证。 当我更改架构中的属性并运行测试代码时,测试不会失败。但我想测试那里存在的任何财产。如果响应测试中不存在模式中的某个属性,则必须失败。但我无法做到这一点。 我怎样才能做到这一点? 我的测试代码:
@Test
public void catalogButiqueDetailTest(){
File file = new File("src/test/resources/generatedJson/boutiqueDetailSchema.json");
JsonSchemaFactory jsonSchemaFactory = JsonSchemaFactory.newBuilder().setValidationConfiguration(ValidationConfiguration.newBuilder().setDefaultVersion(SchemaVersion.DRAFTV4).freeze()).freeze();
given()
.headers("some-header-info")
.contentType("application/json")
.get("web-service-url")
.then()
.assertThat()
.body(JsonSchemaValidator.matchesJsonSchema(file).using(jsonSchemaFactory));
}
答案 0 :(得分:0)
在您的架构中添加以下属性:
"required": ["prop1", "prop2", ...],
"additionalProperties": false