作为测试的一部分,我正在尝试使用 Javers 比较两个 json,预期和 API 响应。我希望比较排除响应动态生成的 ID 参数。
我的VO就像
public class expectedResponse{
@DiffIgnore
private String id;
private String name;
}
从 excel 文件读取的我的 expectedResponse- 和来自 API 的实际响应都被反序列化为这种格式,然后比较两个响应。
JsonNode expectedOutput = mapper.readTree(expected.toString());
JsonNode apiResponse = mapper.readTree(actual.toString());
diff=javers.compare(expectedOutput, apiResponse);
但是这种比较不会排除/忽略 ID 字段。知道如何让它工作吗?我只想在比较结果中排除 ID 字段,应列出名称中的差异。
还有问题 2> 我正在尝试列出来自 diff 的更改
if (diff.hasChanges())
{
List<ValueChange> changes=diff.getChangesByType(ValueChange.class);
for (ValueChange change : changes)
{
logger.info(change.getPropertyName()+ "||" +change.getLeft().toString() + "||" +change.getRight().toString());
change.getPropertyName() - 不打印属性的名称,而只是打印“_value”作为其值。
您能否帮助确定代码出了什么问题,我该如何解决这个问题?我在谷歌的任何地方都没有找到很多关于 Javers 的有用文档。任何帮助表示赞赏。