2
我試圖比較兩個jsons,預期和使用Javers的API響應,作爲測試的一部分。我想要進行比較以排除由響應動態生成的ID參數。Javers:在比較兩個jsons時忽略Value Object中的特定字段
我的VO是像
public class expectedResponse{
@DiffIgnore
private String id;
private String name;
}
我的兩個expectedResponse-這是從Excel文件和API的實際響應讀反序列化到這個格式,那麼無論是反應進行了比較。
JsonNode expectedOutput = mapper.readTree(expected.toString());
JsonNode apiResponse = mapper.readTree(actual.toString());
diff=javers.compare(expectedOutput, apiResponse);
但是這種比較不排除/忽略ID字段。任何想法如何讓它工作?我只想在比較結果中排除ID字段,應列出名稱差異。
還質疑2>我試圖列出從差異
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的有用文件。任何幫助表示讚賞。
感謝帕維爾。這正是我所犯的錯誤,一直在盯着臉。我把它們轉換成了String,這導致了所有的麻煩。非常感謝您的幫助!謝謝。 – Divya