0
在我的情况下,我需要从两个不同的系统请求一组名称,并验证它们是否相等(无论顺序)。最大的可能是我不明白不便,但是这个代码工作正常:Assertj比较提取的字符串数组
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()
,我也试着在这里和那里投射,但总是捕捉一些异常/错误。
我如何比较它们?
它应该是'assertThat(getNamesOutOf(firstJSON))。isEqualTo(getNamesOutOf(secondJSON))'。我们可以帮助实现getNamesOutOf(),我们知道firstJSON和secondJSON的类型和结构。 –