在测试中,我们通常使用assertNotNull
,但它不执行从可空类型到非空类型的智能转换。我必须写这样的东西:
if (test == null) {
Assert.fail("")
return
}
只使用assertNotNull
调用执行智能强制转换是一种解决办法吗?你是怎么处理的?
发布于 2019-01-22 05:59:01
kotlin.test库提供了一个简单的解决方案:
kotlin.test.assertNotNull()
因为这个函数实现了Kotlin契约,所以它支持智能转换:
contract { returns() implies (actual != null) }
示例:
fun Foo?.assertBar() {
assertNotNull(this)
assertEquals(this.bar, 0)
}
只需确保使用正确的(import kotlin.test.assertNotNull
)!导入assertNotNull
如果尚未使用kotlin.test
库,请将其添加到项目中:
group: 'org.jetbrains.kotlin', name: 'kotlin-test', version: '1.3.11
https://stackoverflow.com/questions/42048266
复制相似问题