gpt4 book ai didi

java - 根据 AssertJ 中的原始值检查从 Collection 中提取的值

转载 作者:行者123 更新时间:2023-12-01 10:58:24 27 4
gpt4 key购买 nike

我遇到过这样的情况,我需要集合中的所有对象在字段中都具有特定的 boolean 值。 extracting() 似乎是一个非常好的候选者。我能够非常轻松地“访问”该字段,但是当我想检查它的值时,我无法在 API 中找到一种干净的方法来执行此操作。我首先想到的是:

        SomeService someService = new SomeService();
List<ClassA> llList = someService.getList();
assertThat(llList).extracting("someBoolean")
.are(new Condition<Object>() {
@Override
public boolean matches(Object o) {
return Boolean.FALSE.equals(o);
}
});

这似乎是很常见的事情,我很困惑,因为我无法在 AssertJ API 中找到更好的东西。为了增强可读性,我接下来执行了以下操作:

assertThat(llList).extracting("someBoolean")
.are(createBooleanCondition(false));

public static Condition<Object> createBooleanCondition(boolean expected){
return new Condition<Object>() {
@Override
public boolean matches(Object o) {
return new Boolean(expected).equals(o);
}
};
}

是否有更简洁的方法来使用 AssertJ 表达这种断言?

注意:我可以使用 java8 lambda 来使其更清晰,但我的问题是针对 assertj 的,而且我还有一个硬性规则,即我需要在 java 1.7 中编译它。

最佳答案

要检查每个提取的 boolean 值是否为假,我只需这样做:

assertThat(llList).extracting("someBoolean").containsOnly(Boolean.FALSE);

关于java - 根据 AssertJ 中的原始值检查从 Collection 中提取的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33479603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com