Assertj比较提取的哪些是String数组

时间:2017-05-14 16:51:30

标签: java json assertj

在我的情况下,我需要从两个不同的系统请求一组名称并验证它们是否相等(无论顺序如何)。很可能我不理解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(),我也试过在这里和那里进行投射,但总是会遇到一些异常/错误。

如何比较它们?

1 个答案:

答案 0 :(得分:0)

此时我会考虑使用https://github.com/lukas-krecan/JsonUnit而不是AssertJ,它提供了很好的导航功能来断言你的JSON数据的子部分。