首页 > 解决方案 > 如何在 AssertJ 中链接多个 assertThat 语句

问题描述

这是一个例子:

assertThat(commentById.getId()).isNotNull();
assertThat(commentById.getContent()).isNotBlank();
assertThat(commentById.getAuthor()).isNotNull();
assertThat(commentById.getAuthor().getUsername()).isNotBlank();
assertThat(commentById.getAuthor().getAvatar()).isNotBlank();
assertThat(commentById.getAuthor().getId()).isNotNull();

反正有没有把它链接成一个单一的assertThat语句


对不起,不清楚的问题。我的意思是,是否有一些流畅的方法调用将多个 assertThat 语句链接在一起。这是我能想到的一个例子:

assertThat(commentById)
.isNotNull()
.and(Comment::getID).isNotNull()
.and(Comment::getContent).isNotBlank()
.and(Comment::getAuthor).is(author->{
         author.isNotNull()
        .and(User::getID).isNotNull()
        .and(User::getAvatar).isNotBlank()
        .and(User::getUsername).isNotBlank()
});

标签: assertj

解决方案


目前这是不可能的,可以使用的是,extracting但这意味着从当前实际导航到提取的实际,而无法返回到原始实际。


推荐阅读