我想为我的Kotlin代码写一个单元测试,并使用junit/hamcrest匹配器,我想使用is方法,但它是Kotlin中的保留字。我怎样才能得到下面的编译?
is
class testExample{ @Test fun example(){ assertThat(1, is(equalTo(1)) } }
目前,我的IDE,InteliJ是突出显示,作为一个编译错误,说它是期待一个)后is?
)
vwoqyblh1#
您可以在导入时使用as关键字将is别名为Is(例如)。例如:
as
Is
import org.hamcrest.CoreMatchers.`is` as Is
参见https://kotlinlang.org/docs/packages.html#imports
qyzbxkaa2#
在Kotlin中,is是一个保留字。为了解决这个问题,你需要使用反引号来转义代码,所以下面的代码将允许你编译代码:
class testExample{ @Test fun example(){ assertThat(1, `is`(equalTo(1)) } }
hgtggwj03#
正如其他人指出的,在Kotlin中,is是一个保留字(参见Type Checks)。但这对Hamcrest来说不是一个大问题,因为is函数只是一个装饰器。它用于提高代码的可读性,但它不是正常运行所必需的。您可以自由使用更短的Kotlin友好表达式。1.平等:
assertThat(cheese, equalTo(smelly))
而不是:
assertThat(cheese, `is`(equalTo(smelly)))
assertThat(cheeseBasket, empty())
assertThat(cheeseBasket, `is`(empty()))
另一个经常使用的Hamcrest匹配器是一个类型检查类
assertThat(cheese, `is`(Cheddar.class))
它已被弃用,并且对Kotlin不友好。相反,建议您使用以下选项之一:
assertThat(cheese, isA(Cheddar.class)) assertThat(cheese, instanceOf(Cheddar.class))
3条答案
按热度按时间vwoqyblh1#
您可以在导入时使用
as
关键字将is
别名为Is
(例如)。例如:
参见https://kotlinlang.org/docs/packages.html#imports
qyzbxkaa2#
在Kotlin中,
is
是一个保留字。为了解决这个问题,你需要使用反引号来转义代码,所以下面的代码将允许你编译代码:hgtggwj03#
正如其他人指出的,在Kotlin中,
is
是一个保留字(参见Type Checks)。但这对Hamcrest来说不是一个大问题,因为is
函数只是一个装饰器。它用于提高代码的可读性,但它不是正常运行所必需的。您可以自由使用更短的Kotlin友好表达式。
1.平等:
而不是:
而不是:
另一个经常使用的Hamcrest匹配器是一个类型检查类
它已被弃用,并且对Kotlin不友好。相反,建议您使用以下选项之一: