在Java类中使用Kotlin注释类

问题描述 投票:0回答:2

我正在Kotlin中编写新功能,但有些东西已经用Java编写了。

我在Mockito(Kotlin)写测试,但Mockito有最后一堂课的问题所以我创建了:

annotation class Mockable {}

并添加到Gradle-build

apply plugin: 'kotlin-allopen'

allOpen {
    annotation('com.Mockable')
}

所以使用这个注释类我可以模拟Kotlin类。

我如何在Java类中使用这个注释?

java android kotlin annotations mockito
2个回答
1
投票

你不需要Java。但无论如何,还有另一种方法可以将Mockito与Kotlin一起使用:

使用内容创建文件src / test / resources / mockito-extensions / org.mockito.plugins.MockMaker:

mock-maker-inline

这改变了模拟行为,也支持像Kotlin那样的final类。对于某些Java类,我之后不得不使用spy()而不是mock()


1
投票

我如何在Java类中使用这个注释?

您不能以这种方式使用此注释,因为kotlin-allopen仅适用于Kotlin类。在Java中,只是不要将类标记为final ...

就此而言,在Kotlin中,如果我理解正确,它似乎没有用处:当注释将以某种方式处理时需要使用kotlin-allopen,这需要创建带注释类型的子类,所以你需要编写open以及注释。在这里,你可以写open而不是@Mockable

© www.soinside.com 2019 - 2024. All rights reserved.