2015-10-02 13 views
8

が、これはJUnitのルールを作成するための許容可能な方法でしたか? IDEのヒントでは、@publicFieldlateinitに置き換えることを提案していますが、lateinit valは許可されなくなりました。Kotlin JUnitのルールKotlin M13で

答えて

-3

だけで推測するが、次は(varで)うまくいくかもしれない:

@Rule lateinit var temp = TemporaryFolder() 

私は現在、それが何かを修正するための最速の方法ですkotlinのたるみhttp://t.co/xpQXUKaDvP で尋ねしようとするだろう。次のようにKotlin 1.0のよう

+0

実際にはフィールドではないので、この場合、JUnitはフィールドとしてtempを認識しません。どこかに隠れたバッキングフィールドがあり、そのトリックはアノテーションを適用する方法になります。 – jkschneider

+0

申し訳ありませんが、@ jkschneider、実際に動作確認しましたか?ドキュメントによれば、それはフィールドを作成し、トリックを行う必要があります。残念ながら私はJUnit自身では動作しません。 – voddan

12

答えは次のとおりです。

@Rule @JvmField val temp = TemporaryFolder() 

@JvmFieldは、使用するJUnitのルールのパブリックフィールドをエルゴプロパティと同じ可視性とバッキングフィールドを公開します。