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