在我的情况下,我需要从两个不同的系统请求一组名称并验证它们是否相等(无论顺序如何)。很可能我不理解smth,但这段代码运行良好:
assertThat(asList(assertThat(firstJSON)
.flatExtracting("innerObject")
.extracting("name")).stream().map(Object::toString).collect(Collectors.toList()))
.containsExactlyElementsOf(
asList(assertThat(secondJSON)
.flatExtracting("innerObject")
.extracting("name")).stream().map(Object::toString).collect(Collectors.toList()));
,但看起来真的很难看,我想要这样的东西:
assertThat(firstJSON)
.flatExtracting("innerObject")
.extracting("name")
.containsExactlyElementsOf(
assertThat(secondJSON)
.flatExtracting("innerObject")
.extracting("name"));
我尝试了许多功能,例如isSubsetOf()
或containsOnly()
,我也试过在这里和那里进行投射,但总是会遇到一些异常/错误。
如何比较它们?
答案 0 :(得分:0)
此时我会考虑使用https://github.com/lukas-krecan/JsonUnit而不是AssertJ,它提供了很好的导航功能来断言你的JSON数据的子部分。