4
我使用Hamcrest Matcher来比较两个JSON对象。比较方法使用Gson解析器。Hamcrest Matcher with junit style diff
的匹配的伟大工程,但是当两个JSON是不一样的,我只能显示像消息:
Expected: <[{"data":"data1","application":{"id":"1"}}]>
but: <[{"data":"data1","application":{"id":"2"}}]>
这是不是非常有帮助,我想展现的元素不匹配,像什么junit的assertEquals:
expected:<...a1","application":{"[filtered":false,"id":"1"]...> but was:<...a1","application":{"[id":"2"...>
有没有办法实现这一目标?
编辑:
@Override
protected void describeMismatchSafely(JsonElement item,
Description mismatchDescription) {
//mismatchDescription.appendValue(item);
assertEquals(item.toString(), originalJson.toString());
}
但是,这会给我:
expected:<...a1","application":{"[filtered":false,"id":"2"]...>
but was:<...a1","application":{"[id":"1","filtered":false],...>
注意,唯一不同的是 “ID:1” 和 “ID:2”,但JUnit的表明了我JSON中的不同排序也是错误的一部分。