2

我要测试的类中有一些私有静态最终字段。如下

public class ClassToTest{
    ....
    private static final Myclass myclass = MyClassFactory.getMyClass(type.firstType);
    ....
}

类型是 MyClassFactory 中的枚举。该工厂所做的是根据传递的类型初始化对象并返回。

我的问题是 powermock 是否支持这一点,如果支持,如何做到这一点。

4

3 回答 3

4

如果任何模拟库适合您,您也可以使用反射。

Field f = classToTest.getclass().getDeclaredField("myclass ");
f.setAccessible(true);
f.set(classToTest,/*NEW VALUE*/);
于 2013-10-17T12:47:25.320 回答
2

PowerMock(+一个模拟框架)将允许您这样做。大概你在谈论嘲笑 MyClassFactory.getMyClass() ?

请参阅此问题以获取示例

于 2013-10-17T12:45:24.613 回答
1

为什么要测试这个值?你不应该测试你的枚举,测试它是否在给定类型传递给它时返回正确的值。如果您想测试枚举到字段的分配,您会怀疑基本的 java 分配。

于 2013-10-17T12:54:29.057 回答