我正在使用matchesJsonSchemaInClasspath
验证json模式。如果响应正文具有schema.json
文件中定义的相同值,则效果很好。
如果响应主体具有未在json模式中定义的EXTRA变量/值,则它不会失败。如何使该测试用例失败?
例如:
以下是具有预定义JSON模式的响应主体。
{
"employee": {
"name": "sonoo",
"salary": 56000,
"married": true
}
}
如果响应正文提供了诸如电子邮件/电话之类的额外值,则它仍在传递。我需要使它失败。这是我的测试用例,如果响应主体返回额外的值,它将失败。如何验证此测试用例?
{
"employee": {
"name": "Mike",
"salary": 56000,
"Phone": "+XXX",
"email": "test@gmail.com",
"married": true
}
}
答案 0 :(得分:2)
创建代表json的POJO类
public class Employee {
private String name;
private float salary;
private boolean married;
// Getter Methods
public String getName() {
return name;
}
public float getSalary() {
return salary;
}
public boolean getMarried() {
return married;
}
// Setter Methods
public void setName(String name) {
this.name = name;
}
public void setSalary(float salary) {
this.salary = salary;
}
public void setMarried(boolean married) {
this.married = married;
}
}
使用以下rest sure命令反序列化响应
Employee emp = response.getBody().as(Employee.class);
将其他字段(例如电子邮件或电话号码)添加到响应正文时,上述命令将自动失败并引发错误。