修改groovy trait私有字段

时间:2015-10-11 13:26:12

标签: reflection groovy traits

在我的单元测试中,我通常使用反射手动将模拟注入测试类的私有字段:

static void setFieldValue(Object instance, String fieldName, Object fieldValue, Class instanceClass) {
        def field = instanceClass.getDeclaredField(fieldName)
        field.accessible = true
        field.set(instance, fieldValue)
    }

其中instanceClass是类/超类,其中实际声明了类。如何在一个常规特征上声明私有字段,使其工作或获得相同的结果?

1 个答案:

答案 0 :(得分:0)

我的IDE帮助了我 - 只需使用@属性访问表示法,其中fieldname为package_dots_replaced_with_underscore_TraitName__fieldName,例如

testee.@pl_kamilroman_DeleteEntityBean__messages