我正在尝试使用Citrus Framework编写一些示例代码。作为我的第一次尝试,我无法验证响应消息的JSON模式。
我已将架构存储库添加到citrus-context.xml文件,但不知道如何将其与Java代码一起使用。
柑橘上下文文件
<citrus:schema-repository id="schemaRepository" type="json">
<citrus:schemas>
<citrus:schema id="petCreation" location="classpath:org/logica/citrus/samples/PetCreationJSONSchema.json"/>
</citrus:schemas>
</citrus:schema-repository>
Java文件
@CitrusTest
public void end2endTest()
{
http().client(restClient).send().post("/pet").contentType("application/json").payload(new ClassPathResource("org\\logica\\citrus\\samples\\PetJSONCreation.json"));
http().client(restClient).receive().response(HttpStatus.OK).messageType(MessageType.JSON);
}
如果使用JSON,在哪里应用模式验证代码?
答案 0 :(得分:0)
一旦Json模式在模式存储库中可用,则在处理receive
动作中的传入消息时,将自动完成验证。
您唯一需要做的就是在您要用于验证的receive
上提供架构名称。
http().client(restClient)
.receive()
.response(HttpStatus.OK)
.messageType(MessageType.JSON)
.jsonSchema("petCreation");
使用XML模式,Citrus可以按名称空间从存储库中自动选择正确的模式。在Json中,我们没有类似名称空间的名称,因此您需要显式指定架构名称。