Kotlin JUnit规则

jks*_*der 13 kotlin

在Kotlin M13中,这是创建JUnit规则的可接受方式:

@Rule @publicField val temp = TemporaryFolder()

现在@publicField已被弃用,如何才能实现这一目标?IDE将提示更换建议@publicField使用lateinit,但lateinit val的不再是允许的,我不知道这将有助于即使他们.

jks*_*der 19

Kotlin 1.0的答案如下:

@Rule @JvmField val temp = TemporaryFolder()
Run Code Online (Sandbox Code Playgroud)

@JvmField 使用与属性相同的可见性公开支持字段,为JUnit规则使用公共字段.


vod*_*dan -4

只是猜测,但以下可能有效(使用var):

@Rule lateinit var temp = TemporaryFolder()
Run Code Online (Sandbox Code Playgroud)

我会尝试询问 kotlin 的 slack http://t.co/xpQXUKaDvP 目前这是修复任何问题的最快方法。