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