Tag: 断言

是否有相当于AssertJ库的Kotlin?

我正在将一些测试从Java转换到Kotlin。 对于Java测试,我使用AssertJ库,这个库非常强大,并且拥有丰富的断言。 我的问题是,对于Kotlin测试,我不能使用AssertJ和Kotlin JUnit( org.jetbrains.kotlin:kotlin-test-junit )具有非常有限的一组断言。 有没有Kotlin相当于AssertJ或更好的断言方式? 我find了Kluent库,但我仍不确定这是否是最好的库。

断言与Kotin中的错误消息

从Java切换后,我在Kotlin中感觉很舒服,无法find如何将Kotlin的assert函数与错误消息一起使用。 听起来很简单,我只需要类似于Java的东西 assert count > 5 : “value too small” 我试过了 assert(count > 5, “value too small”) 但是,第二个参数需要是() -> Any 。 如何实现?

如何检查在AssertJ中的平等或两者都为空?

我想断言expected和actual是相等的。 如果两者都为null或空白( “” ) – 即null表示空白。 .withComparator(…).isEqualTo(expected)不起作用,因为之前通过AspectJ检查了null : @Given(“^data is \”([^\”]*)\”$”) void theDataIs(String arg) { assertThat(msg.getData()) .usingComparator(blankOkComperator).isEqualTo(arg); } 我的比较者是Kotlin,但你有这样的想法: object blankOkComperator : Comparator { 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!!) } } 我只设法通过覆盖AssertJ的Condition来实现检查,但是对我来说看起来并不是很强硬: @Given(“^data is \”([^\”]*)\”$”) void theDataIs(String arg) { […]