在使用AssertJ进行断言时,可以使用提供的extracting
方法来提取或映射值,以实现更流畅的断言。
以下是一个简单的代码示例:
import org.assertj.core.api.Assertions;
import java.util.Arrays;
import java.util.List;
public class FluentAssertionExample {
public static void main(String[] args) {
List names = Arrays.asList("John", "Jane", "Tom");
Assertions.assertThat(names)
.extracting("length")
.contains(4, 3, 3);
}
}
在上面的示例中,我们创建了一个包含姓名的字符串列表。然后,我们使用extracting
方法从名称列表中提取每个姓名的长度,并使用contains
方法断言提取的长度是否包含预期值。
使用extracting
方法可以通过属性名称或提取器来提取值。如果属性名称是对象的属性,则AssertJ将使用反射来提取该属性的值。如果属性名称是对象的字段,则AssertJ将使用反射来提取该字段的值。如果需要更复杂的值提取逻辑,可以使用提取器。
除了提取值,extracting
方法还支持链式调用,允许进一步处理和断言提取的值。
通过使用extracting
方法,我们可以以一种更流畅和易读的方式断言提取或映射的值。