Java 如何在AssertJ中检查相等或同时为空?

Java 如何在AssertJ中检查相等或同时为空?,java,assertj,nonblank,Java,Assertj,Nonblank,我想断言预期的和实际的是相等的。如果两者都是null或空白(“”)——也就是说null表示空白,则可以 .withComparator(…).isEqualTo(预期)不起作用,因为AspectJ之前检查了null: @给定(“^data is\”([^\“]*)\“$”) 作废数据(字符串参数){ assertThat(msg.getData()) .使用比较器(blankOkComperator)。等质量(arg); } 我的比较对象是科特林,但你知道: 对象比较器:比较器{ 覆盖有趣的比

我想断言
预期的
实际的
是相等的。如果两者都是
null
或空白(
”)——也就是说
null
表示空白,则可以

.withComparator(…).isEqualTo(预期)
不起作用,因为AspectJ之前检查了
null

@给定(“^data is\”([^\“]*)\“$”)
作废数据(字符串参数){
assertThat(msg.getData())
.使用比较器(blankOkComperator)。等质量(arg);
}
我的比较对象是科特林,但你知道:

对象比较器:比较器{
覆盖有趣的比较(o1:String?,o2:String?):Int{
if(StringUtils.isBlank(o1)和&StringUtils.isBlank(o2))返回0
if(StringUtils.isBlank(o1))返回-1
如果(StringUtils.isBlank(o2))返回1
返回o1!!。与(o2!!)比较
}
}
我只通过覆盖AssertJ的
条件实现了检查,但在我看来,它并不是很像assert-j-ish:

@给定(“^data is\”([^\“]*)\“$”)
作废数据(字符串参数){
断言(msg.getDate())
.is(新的等温线(arg));
}
同样,助手是Kotlin,但你知道我的意思:

class EqualToorBoothBlank(应为val:String):条件(){
覆盖有趣的匹配(实际值:字符串?):布尔值{
if(StringUtils.isBlank(实际)和&StringUtils.isBlank(预期))返回true;
返回StringUtils.equals(实际、预期)
}
}

是否有AspectJ方法来实现检查?

目前,您必须使用
条件
,但是如果使用特定的比较器,AssertJ不检查null是一个公平的点,我已经为此创建了

同时,我会将条件实例放入一个字段中,以使代码更具可读性:

@Given("^data is \"([^\"]*)\"$")
void theDataIs(String arg) {
    assertThat(msg.getDate()).is(equalToOrBothBlank(arg));
}
哦,您多次提到AspectJ而不是AssertJ:D

“aspect”,“assert”。。。固定的。