Java Assertj比较提取的字符串数组
在我的例子中,我需要从两个不同的系统请求名称集,并验证它们是否相等(无论顺序如何)。很可能我不理解smth,但这段代码运行良好:Java Assertj比较提取的字符串数组,java,json,assertj,Java,Json,Assertj,在我的例子中,我需要从两个不同的系统请求名称集,并验证它们是否相等(无论顺序如何)。很可能我不理解smth,但这段代码运行良好: assertThat(asList(assertThat(firstJSON) .flatExtracting("innerObject") .extracting("name")).stream().map(Object::toString).collect(Collectors.toList())) .containsExactlyElem
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()
,我也尝试过在这里和那里进行强制转换,但总是捕捉到一些异常/错误
如何比较它们?
在这里我会考虑使用AsjtJJ,它提供了良好的导航特性来断言JSON数据的子段。它应该真正是<代码> AdvestTo(GETNAMESOOF(FrestJSON))。isEqualTo(GETNAMESOOF(第二JSON))< /代码>。我们可以帮助实现getNamesOutOf()
,因为我们知道firstJSON和secondJSON的类型和结构。