0

在我的情况下,我需要从两个不同的系统请求一组名称并验证它们是否相等(不管顺序)。很可能我不明白,但这段代码工作正常:

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()or containsOnly(),我也尝试在这里和那里进行转换,但总是会遇到一些异常/错误。

我如何比较它们?

4

1 回答 1

0

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

于 2017-05-15T00:11:52.403 回答