KotlinでPrivate Methodをテスト
[2] の方法で実施しようとしたら trySetAccessible
が解決できなくて gradle test
がエラーになった。 IntelliJでは補完が効いているので謎である。詰まっていても先に進まないので[2]の方法を試したらうまくいった。
@Test fun test6() { val tc = TitleConferrer() val method = tc::class.memberFunctions.find { it.name == "hoge" } val actual = method?.let { it.isAccessible = true println(it.toString()) it.call(tc) }
find
で見つけるのはなんだか効率悪そうなので、抽象化されたメソッドがあるかと思ったが補完候補の中には見当たらなかったので一旦スルー
java.lang.reflect.Method
と kotlin.reflect
の差異だろうか
References
Memo
java.lang.reflect.Method
と kotlin.reflect
の差異については理解を深めておく
基本的には kotlin.reflect
を使えばいいのだろうか