Kotlin:在测试中访问私有变量

时间:2018-07-25 14:04:35

标签: reflection kotlin

我有一个包含以下属性的Kotlin类

private var items: List<Item> = listOf()

在测试中,我现在要检查列表中是否有项目。我尝试通过反射来做到这一点:

val field = sut::class.members.findLast { f -> f.name.equals("items") }

我现在得到了一个KCallable <*>,但是我不知道如何访问或至少计算列表中的项目。

1 个答案:

答案 0 :(得分:1)

您获得的KCallable实际上是KProperty1的实例,您可以调用其get方法来获取实例:

 val items = (field as KProperty1<ClassUnderTest, List<Item>>).get(sut)