在测试类中模拟私有静态final变量
我在要测试的类中有一些私有的静态final字段。 如下
public class ClassToTest{ .... private static final Myclass myclass = MyClassFactory.getMyClass(type.firstType); .... }
该类型是MyClassFactory中的枚举。 那个工厂做的是根据传递和返回的类型初始化对象。
我的问题是powermock是否支持这一点,如果是的话,该如何做到这一点。
如果任何模拟库适合您,您也可以使用reflection。
Field f = classToTest.getclass().getDeclaredField("myclass "); f.setAccessible(true); f.set(classToTest,/*NEW VALUE*/);
PowerMock(+一个模拟框架)将允许您这样做。 假设您在谈论模拟MyClassFactory.getMyClass()?
请参阅此问题以获取示例
为什么要测试这个值? 你不应该测试你的枚举,测试当给定类型传递给它时它是否返回正确的值。 如果你想测试enum到字段的赋值,你会怀疑基本的java赋值。