expected
とactual
はお互いに等しいと主張したいと思います。両方ともnull
または空白の場合(""
)、つまりnull
は空白を意味します。AssertJで等しいかどうかをチェックするには?
@Given("^data is \"([^\"]*)\"$")
void theDataIs(String arg) {
assertThat(msg.getData())
.usingComparator(blankOkComperator).isEqualTo(arg);
}
私のコンパレータはKotlinですが、あなたのアイデアを得る:
object blankOkComperator : Comparator<String> {
override fun compare(o1: String?, o2: String?): Int {
if(StringUtils.isBlank(o1) && StringUtils.isBlank(o2)) return 0
if(StringUtils.isBlank(o1)) return -1
if(StringUtils.isBlank(o2)) return 1
return o1!!.compareTo(o2!!)
}
}
私だけでチェックを実施するために管理null
は、AspectJのことで前にチェックされているので、
.withComparator(...).isEqualTo(expected)
は、動作しません。 AssertJのCondition<String>
をオーバーライドしていますが、私にはそれほど主張はしていません。
@Given("^data is \"([^\"]*)\"$")
void theDataIs(String arg) {
assertThat(msg.getDate())
.is(new EqualToOrBothBlank(arg));
}
ここでも、ヘルパーはKotlinですが、あなたは私が何を意味するか知っている:
class EqualToOrBothBlank(val expected: String) : Condition<String?>() {
override fun matches(actual: String?): Boolean {
if(StringUtils.isBlank(actual) && StringUtils.isBlank(expected)) return true;
return StringUtils.equals(actual, expected)
}
}
は、チェックを実装するAspectJの-方法はありますか?
「側面を"、" assert "...固定されました。 – towi